为 Windows 交叉编译 GLib 会抛出错误 "' XDG_MIME_TYPE_UNKNOWN' undeclared”

标签 cross-compiling glib undeclared-identifier

交叉编译时GLib 2.32.4使用适用于 Win32 的 Mingw-w64,我遇到了以下错误:

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 中的任何位置。

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

最佳答案

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

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

库现在编译没有错误。

关于为 Windows 交叉编译 GLib 会抛出错误 "' XDG_MIME_TYPE_UNKNOWN' undeclared”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979078/

相关文章:

c - 如何获得 C 函数的基本编译二进制代码?

c++ - 在 macOS 主机上为 Windows 目标交叉编译 golang 和 cgo

c - 为什么 mkdir 不适用于 GString?

c - 在 C 中使用函数指针访问外部函数

C++ 主文件具有在头文件 (Xcode) 中声明的未声明标识符

c# - 在 x86 系统上编译 C# .NET x64 二进制文件

c - sched_setaffinity 和 glibc - 交叉编译

glib - 如何在 GLib 中将整数转换为字符串?

c - Glib:创建 GDBusProxy 时内存泄漏

uitableview - SWIFT:使用未声明的类型 "detailViewController"