最简单易用,轻量级,独立于平台的C ++图形库

时间:2012-04-25 06:50:52

标签: c++ graphing platform-independent

最简单的使用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复制到了includes文件夹中,并在example.c的同一目录中留下了一个副本。当我编译时,我发现由于某种原因,#include <sdlgraph.h>不起作用。尽管是一个SDL程序,int main()也没有参数。在解决了这个问题之后,我得到了undefined reference个15种不同的功能,我可以在sdlgraph.h文件中清楚地看到这些功能,例如init_graphdraw_grid

1 个答案:

答案 0 :(得分:0)

关于您的错误: 由于您对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/

希望它有所帮助!