【发布时间】:2010-11-11 20:57:39
【问题描述】:
这是世界上最简单的 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 下的任何位置搜索任何“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。
我现在该怎么办?
【问题讨论】:
-
也许我只是在傻,但是你为什么要编译一个头文件?
-
我从一个更复杂的程序开始,但如果 "#include
" 不起作用,什么都不会。 -
如果你没有 main 函数,它将不工作。用
stdio.h替换你的glib.h也不起作用。假设您有一个主要功能,正确的答案是使用pkg-config,如其他答案中所述。 -
@YasushiShoji:如果 test.c 只包含
#include <stdio.h>,gcc -c test.c应该可以正常工作。添加第二行void test(void) { }不会有什么坏处,但这不是必需的。在 OP 的情况下,无论#include <glib.h>后面的内容如何,都会出现错误消息。