0

我有一个:

GFile* gf = g_file_new_for_path(file_path);

在我的代码中。但是当我尝试编译它时,我看到了错误:

未定义的引用:'g_file_new_for_path'

在包含部分我有#include <gio/gio.h>

这段代码有什么问题?

4

1 回答 1

0

我重新标记了您的问题,这不是 GTK+,而是 gio。

正如您根据评论发现的那样,您的问题是由于没有链接到正确的库。这是因为在 C 中,仅仅包含一个头文件并不能告诉编译器在哪里可以找到实现该头文件中声明的内容的代码。为此,您通常需要链接到适当的库(或直接编译代码,就像您在自己的项目中所做的那样)。

顺便说一句,推荐的引用库的方法是使用诸如pkg-config之类的工具。然后编译看起来像这样:

$ gcc -o mygiotest mygiotest.c $(pkg-config --cflags --libs glib-2.0 gobject-2.0 gio-2.0)

您需要仔细检查上面的内容,我不在 Linux 中,因为我输入了这个,所以我无法验证确切的包名称。

于 2010-06-01T08:01:47.050 回答