如何修复“错误:只能直接包含<glib.h>。”</glib.h>

时间:2013-11-21 11:16:14

标签: c glib

在Linux Mint下,尝试make gnome-vfs-2.0.4,但我收到了错误消息:

/glib-2.0/glib/gtypes.h:31:2: error: #error "Only glib.h can be included directly."

glib-2.0/glib/gmacros.h:35:2: error: #error "Only glib.h can be included directly."

glib-2.0/glib/gversionmacros.h:31:2: error: #error "Only glib.h can be included directly."

glib-2.0/glib/glist.h:31:2: error: #error "Only  glib.h can be included directly."

glib-2.0/glib/gmem.h:31:2: error: #error "Only glib.h can be included directly."

glib-2.0/glib/gnode.h:31:2: error: #error "Only glib.h can be included directly."

我谷歌了,据说我应该将#include <glib/xxx.h>更改为#include <glib.h>,但在我这样做之后会出现更多错误。

如何解决?

1 个答案:

答案 0 :(得分:2)

为什么你要编译一个很久以来被弃用的库,比如gnome-vfs?另外,你为什么要尝试使用明显更新的GLib版本来编译11年前的gnome-vfs 2.0.4?

GLib几年前开始只允许包含顶级“glib.h”标题;我不完全确定gnome-vfs是否曾经更新过,因为它现在被弃用了5年。

一般情况下,您想尝试构建更新版本的gnome-vfs - 最新版本是3年前发布的2.24.4。如果它确实构建,你将不得不修改gnome-vfs以始终只包含顶级glib头。这意味着编辑包含“glist.h”,“gmem.h”,“gnode.h”等内容的所有源文件,并将其替换为:

#include <glib.h>

然后重建。

但是,我的实际建议是不使用不需要维护的已弃用库,以及已知问题。如果您可以访问最新版本的GLib,则可以使用GIO - GLib附带的库替换了gnome-vfs。