我正在编译我的第一个glib
程序,我收到错误
first.c:2:19: fatal error: gtypes.h: No such file or directory
编译终止。
我正在使用GLib手册中提到的pkg-config utilit进行编译
这是pkg-config --cflags glib-2.0
==>-I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include
我用于编译的命令是
gcc `pkg-config --cflags glib-2.0` first.c
可能是什么原因?
答案 0 :(得分:0)
尝试将包含更改为
#include <glib/gtypes.h>
并且您会看到一条错误,指出不要直接包含gtypes.h
。你的pkg-config使用率看起来不错,所以请改用它,
#include <glib.h>
并且应包含gtypes.h
和glib
所需的其他标头。
答案 1 :(得分:0)
与G *堆栈中的许多其他库一样,GLib附带了多个头文件,但只允许包含来自用户代码的顶级头文件。这意味着在包含头文件时避免依赖性问题,并允许库开发人员在不破坏用户代码的情况下移动定义和符号。
对于GLib,您可以包含的顶级标题按复杂程度排列:
glib.h
,适用于低级别类型和API glib-object.h
,GType类型系统gio/gio.h
,用于GIO输入/输出和高级API(例如GDBus,GSettings等) glib.h
之后的每个标题也包括之前的标题,因此如果您想使用GObject,则不需要包含glib.h
,并且您不需要包含glib-object.h
如果您想使用GIO。