1

使用像 matlab 和 octave 这样的图形函数的最简单的 C++ 库是什么?我查看了几个并发现了所有类似的主要问题:我无法编译一个只有

#include <iostream>

#include "header_to_include.h"

int main(){

   return 0;
}

我找到了 koolplot、一些 wxwidget 的东西、sdl_graph、gnuplot++ 和 Qt 的东西。我在这里查看了列表中的一些,但有些是用于其他语言的,而另一些则使用安装程序或依赖于其他程序。当我提取文件并尝试从下载中编译我的简单代码或给出示例代码时,代码块总是抱怨缺少标题或变量或其他一些东西。

我会使用 gnuplot,除非我不想从我的 cpp 文件创建 gnuplot 文件,即使它是通过管道。我希望能够直接从程序中绘制图形。

有没有什么只是压缩包中的少量文件,可以立即提取和使用,而不必弄清楚要包含哪些文件、安装/下载其他主要库等?

编辑:

例如,我找到了http://sdl-grapher.googlecode.com/svn/trunk/并下载了文件。我已经有 sdl,所以我将 sdlgraph.h 复制到包含文件夹中,并将副本留在与 example.c 相同的目录中。当我编译时,我发现由于某种原因,它#include <sdlgraph.h>不起作用。int main()尽管是 SDL 程序,但也没有任何参数。修复后,undefined reference我可以在文件中清楚地看到 15 个不同的功能,sdlgraph.h例如init_graphdraw_grid

4

1 回答 1

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/

希望能帮助到你!

于 2012-12-12T11:18:34.540 回答