为什么我不能为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/lib
path或复制文件到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立一些东西的所有包。