【问题标题】:Cross-compiling GLib for Windows is throwing an error "'XDG_MIME_TYPE_UNKNOWN' undeclared"交叉编译 GLib for Windows 引发错误“'XDG_MIME_TYPE_UNKNOWN' undeclared”
【发布时间】:2012-08-16 00:20:10
【问题描述】:

在使用 Mingw-w64 for 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 中的任何位置似乎都没有包含此文件。

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

【问题讨论】:

    标签: cross-compiling glib undeclared-identifier


    【解决方案1】:

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

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

    该库现在编译没有错误。

    【讨论】:

    • 您可能想向上游发送补丁
    • 感谢您的利他,首先在 Google 上点击。节省了我的时间!
    • @bratao:不客气!我很高兴知道我所经历的所有挫折都对某人有所帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多