最易于使用、轻量级、独立于平台的 C++ 图形库
Posted
技术标签:
【中文标题】最易于使用、轻量级、独立于平台的 C++ 图形库【英文标题】:Easiest to use, lightweight, platform independent graphing library for C++ 【发布时间】:2012-04-25 06:50:51 【问题描述】:什么是最简单的使用 c++ 库来绘制 matlab 和 octave 之类的函数?我查看了几个,发现它们都有类似的主要问题:我无法编译一个只有
的空程序#include <iostream>
#include "header_to_include.h"
int main()
return 0;
我找到了 koolplot、一些 wxwidget 的东西、sdl_graph、gnuplot++ 和 Qt 的东西。我查看了列表中的一些 here,但有些是针对其他语言的,而另一些则使用安装程序或依赖于其他程序。当我提取文件并尝试从下载中编译我的简单代码或给出示例代码时,代码块总是抱怨缺少标题或变量或其他一些东西。
我会使用 gnuplot,但我不想从我的 cpp 文件创建 gnuplot 文件,即使它是通过管道。我希望能够直接从程序中绘制图表。
有没有什么只是压缩包中的少量文件,可以立即提取和使用,而不必弄清楚要包含哪些文件、安装/下载其他主要库等?
编辑:
例如,我找到了http://sdl-grapher.googlecode.com/svn/trunk/ 并下载了文件。我已经有 sdl,所以我将 sdlgraph.h 复制到包含文件夹中,并将副本留在与 example.c 相同的目录中。当我编译时,我发现由于某种原因,#include <sdlgraph.h>
不起作用。尽管是 SDL 程序,int main()
也没有任何参数。修复之后,我得到了 undefined reference
到 15 个不同的函数,我可以在 sdlgraph.h
文件中清楚地看到这些函数,例如 init_graph
和 draw_grid
【问题讨论】:
问题是,绘图是困难。而且你需要一些图形后端来渲染输出。 如果您打算使用 C++ 工作,最好开始学习并习惯必须下载和安装库。这就是它的工作方式,没有一个按钮可以让你一键获得你想要的一切。 我知道,但我希望至少能够编译一个空程序。如果我不能使用图书馆,我真的无法继续 好吧,如果你不能“编译一个空程序”,你需要更具体地说明你尝试了什么以及你得到的错误信息。否则没人能帮你。 好的。给我一点时间来更新帖子 【参考方案1】:关于您的错误:
由于您是 C++ 新手,我将解释您的 undefined reference
错误。
在 C++ 中,您可以像这样声明一个函数:
void foo();
但是,由于它是声明的,它并不主要是它的定义。定义可以存在于 C++ 源文件、库中,也可以存在于头文件中。
定义前面的例子:
void foo()
std::cout << "void foo() has been called." << std::endl;
您得到的错误意味着这些函数没有定义。 我想您必须将您的应用程序与 SDL 库链接起来。
有关详细信息,请参阅: http://content.gpwiki.org/index.php/SDL:Tutorials:Setup
有关动态和静态链接的更多信息,请参阅: http://www.learncpp.com/cpp-tutorial/a1-static-and-dynamic-libraries/
希望对你有帮助!
【讨论】:
以上是关于最易于使用、轻量级、独立于平台的 C++ 图形库的主要内容,如果未能解决你的问题,请参考以下文章