为什么我不能为glib构build一个“hello world”?

所以这里是世界上最简单的glib程序:

#include <glib.h> 

我尝试用gcc test.c来编译它,我得到:

 test.c:1:18: error: glib.h: No such file or directory 

所以我确定我有正确的软件包:

 # dpkg -l | grep libglib ii libglib-perl 1:1.183-1 Perl interface to the GLib and GObject libra ii libglib1.2-dev 1.2.10-19build1 The GLib library of C routines (development) ii libglib1.2ldbl 1.2.10-19build1 The GLib library of C routines ii libglib2.0-0 2.20.1-0ubuntu2 The GLib library of C routines ii libglib2.0-cil 2.12.1-1ubuntu2 CLI binding for the GLib utility library 2.1 ii libglib2.0-data 2.18.2-0ubuntu2 Common files for GLib library ii libglib2.0-dev 2.20.1-0ubuntu2 Development files for the GLib library ii libglibmm-2.4-1c2a 2.18.1-1 C++ wrapper for the GLib toolkit (shared lib 

然后我在/ usr / include下的任何地方search任何“glib.h”。 我得到了两个,/usr/include/glib-1.2/glib.h和/usr/include/glib-2.0/glib.h。 所以我尝试:

 $ gcc -I/usr/include/glib-2.0 -Wall test.c In file included from /usr/include/glib-2.0/glib/galloca.h:34, from /usr/include/glib-2.0/glib.h:32, from test.c:2: /usr/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: No such file or directory 

(大约10,000多个错误剪报)

我似乎没有在我的电脑上的任何地方glibconfig.h

现在我该怎么做?

glib往往会隐藏自己…你的include语句不起作用,因为GCC不会自动search子目录,所以在glib-1.2或glib-2.0中看不到glib.h。

阅读GLIB手册中的“ 编译GLib应用程序”页面…使用像pkg-config --cflags glib-2.0这样的命令为GCC获取正确的标志。

规范的方式来做你正在尝试的是

 % gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0` 

注意back-ticks,它告诉shell在“就地”运行pkg-config命令。

 > > The canonical way to do what you are trying is > % gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0` 

对不起,不行。 这是一个常见的误解,在大多数情况下,在基于ELF的系统,特别是Linux上,这种情况恰好适用。 规范的方法是在命令行的正确和传统位置分别传入cflags和库,如下所示:

 gcc -Wall -o test `pkg-config --cflags glib-2.0` test.c `pkg-config --libs glib-2.0` 

可惜的是,pkg-config同时接受了–cflags和–libs选项,因为这意味着这个不正确的meme将永远不会死,而且在Linux上人们习惯的方式将会继续困惑在其他平台上也是如此。

正如@chris所说的使用pkg-config

  glibconfig.h is missing 

这是因为这个文件不在/usr/include/glib-2.0 ,而是在/usr/lib/glib-2.0. 所以你也必须包含这个/usr/libpath或复制文件到include / glib-2.0

我也使用glib.h – 这样做来编译你所有的glib.h程序:)

gcc pkg-config --cflags --libs glib-2.0 filename.c

确保环绕pkg-config –cflags –libs glib-2.0,在波形符号下(在qyrty键盘上最左边的键上)find后面的引号。

稍后再谢谢..

apt-get build-dep是你的朋友 – 没有人能记住你需要build立一些东西的所有包。