2012-08-16 86 views
2

虽然交叉编译GLib 2.32.4使用MinGW-W64为Win32,我遇到了以下错误:交叉编译GLib库为Windows抛出一个错误“‘XDG_MIME_TYPE_UNKNOWN’未申报”

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包括。

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

回答

2

我终于自己修改了源代码。

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

的库现在编译没有错误。

+1

您可能需要向上游发送补丁 – Ancurio 2012-08-17 07:26:46

+1

感谢您成为利他主义者,首先在Google上击中。为我节省了时间! – bratao 2012-08-28 18:12:28

+0

@bratao:不客气!我很高兴知道我所经历的所有挫折都对某人有帮助:) – 2012-08-28 19:00:11