首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法编译glib程序

无法编译glib程序
EN

Stack Overflow用户
提问于 2016-02-27 21:09:19
回答 2查看 143关注 0票数 0

我正在编译我的第一个glib程序,我得到的错误是

代码语言:javascript
复制
first.c:2:19: fatal error: gtypes.h: No such file or directory

编译已终止。

我正在使用GLib手册中提到的pkg-config utilit进行编译,这里是pkg-config --cflags glib-2.0的输出

代码语言:javascript
复制
==>-I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include 

我用来编译的命令是

代码语言:javascript
复制
gcc `pkg-config --cflags glib-2.0` first.c

可能的原因是什么?

EN

回答 2

Stack Overflow用户

发布于 2016-02-27 22:32:43

尝试将include更改为

代码语言:javascript
复制
#include <glib/gtypes.h>

你会看到一个错误,告诉你不要直接包含gtypes.h。您的pkg-config用法看起来很好,所以请使用下面的代码,

代码语言:javascript
复制
#include <glib.h>

并且它应该包含glib所需的gtypes.h和其他标头。

票数 0
EN

Stack Overflow用户

发布于 2016-03-06 20:55:08

与G*堆栈中的许多其他库一样,GLib附带了多个头文件,但只允许包含来自用户代码的顶级头文件。这是为了避免包含头文件时的依赖问题,以及允许库开发人员在不破坏用户代码的情况下移动定义和符号。

对于GLib,您可以包含的顶级标头按照复杂性的顺序如下:

用于低级类型的

  • glib.h,和用于GIO输入/输出和高级system
  • gio/gio.h,(例如GDBus、GSettings等)的GType类型API
  • glib-object.h

glib.h之后的每个头文件都包含前面的头文件,因此如果您想使用GObject,则不需要包含glib.h;如果您希望使用GObject,则不需要包含glib-object.h

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35670197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档