使用Mingw-w64为Win32交叉编译GLib 2.32.4时,我遇到了以下错误:
gcontenttype.c: In function 'g_content_type_guess':
gcontenttype.c:335:3: error: 'XDG_MIME_TYPE_UNKNOWN' undeclared (first use in this function)
gcontenttype.c:335:3: note: each undeclared identifier is reported only once for each function it appears in
我只能假设两件事之一:
我遗漏了某种预处理程序定义或./configure
标记(目前我只将--host
和--prefix
传递给./configure
)。
源代码中存在错误。
进一步挖掘后发现XDG_MIME_TYPE_UNKNOWN
被定义为gio/xdgmime/xdgmime.h
,如此:
extern const char xdg_mime_type_unknown[];
#define XDG_MIME_TYPE_UNKNOWN xdg_mime_type_unknown
此文件似乎不包含在gcontenttype.c
中的任何位置。
这是我编译库的方式有问题还是库的错误?
答案 0 :(得分:3)
我最后自己修改了源代码。
gcontenttype.c
:335
g_return_val_if_fail (data_size != (gsize) -1,
g_strdup (XDG_MIME_TYPE_UNKNOWN));
... ...变为
g_return_val_if_fail (data_size != (gsize) -1,
g_strdup ("application/octet-stream"));
现在可以编译库而不会出错。