交叉编译GLib for Windows抛出错误“'XDG_MIME_TYPE_UNKNOWN'unclaclared”

时间:2012-08-16 00:20:10

标签: cross-compiling glib undeclared-identifier

使用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)。

    < / LI>
  • 源代码中存在错误。

进一步挖掘后发现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中的任何位置。

这是我编译库的方式有问题还是库的错误?

1 个答案:

答案 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"));

现在可以编译库而不会出错。