几年前我从一个项目获得了这个applet.c
源文件。 (我在Ubuntu Mate,15.10(仅供参考)。)
它的依赖关系是:
#include <glib.h>
#include <glib/gi18n.h>
但那些标题不存在。所以我做了locate gi18n.h
和locate glib.h
出现:
$ locate galloca.h
/usr/include/glib-2.0/glib/galloca.h
$ locate glib.h
...
/usr/include/glib-2.0/glib.h
所以我将applet.c
源代码更改为:
#include <glib-2.0/glib.h>
#include <glib-2.0/glib/gi18n.h>
然后当我再次尝试编译时,glib.h
对未找到的文件/glib/galloca.h
投掷了致命错误。
然后我意识到所有连续头文件中的每个头文件都引用了glib-2.0
头文件中的错误位置。
例如,glib.h
表示存在的#include <glib/galloca.h>
,但实际上是#include <glib-2.0/glib/galloca.h>
。
我该怎么办?
UPDATE
$ gcc -I/usr/include/glib-2.0 applet.c
会产生:
glib-2.0 applet.c
In file included from /usr/include/glib-2.0/glib/galloca.h:32:0,
from /usr/include/glib-2.0/glib.h:30,
from applet.c:26:
/usr/include/glib-2.0/glib/gtypes.h:32:24: fatal error: glibconfig.h: No such file or directory
compilation terminated.
这是一项重大改进!