c - 缺少 locale_t

标签 c gtk macports osx-snow-leopard

安装 gtk 1.2(包名 gtk1)和 macports chokes 在最终的 make 中,在 libintl.h 的第 440 行。

extern locale_t libintl_newlocale (junk, stuff, stuff)

编译器找不到 locale_t,我也没有做得更好。

该文件导入不存在的 locale.h 和未定义此类型的 xlocale.h。

locale_t 应该在哪里定义?这可能就像缺少依赖一样简单,但我不知道缺少什么。

根据要求,这里是 xlocale.h,减去版权,这是 Open Group 的。
#include <X11/Xfuncproto.h>
#include <X11/Xosdefs.h>

#ifndef X_LOCALE
#include <locale.h>
#else

#define LC_ALL      0
#define LC_COLLATE  1
#define LC_CTYPE    2
#define LC_MONETARY 3
#define LC_NUMERIC  4
#define LC_TIME     5

_XFUNCPROTOBEGIN
    extern char *_Xsetlocale(
    int /* category */,
    _Xconst char* /* name */
);
_XFUNCPROTOEND

#define setlocale _Xsetlocale

#include <stddef.h>

#endif /* X_LOCALE */

最佳答案

如果您不需要将消息翻译成英语以外的语言,您可以找到 libintl 的各种虚拟版本。作为替代品。如果我没记错的话,uclibc 包括一个。您也可以添加 typedef void *locale_t;某处并解决该错误。

..这是一个 错误 . locale_t直到 POSIX 2008 才被添加到 POSIX,这比 libgtk1.2 新很多;在那之前,它是一个 GNU 扩展。在任何情况下,由于它是一个非常新且未被广泛支持的功能,configure 应该对其进行测试,并且只有在它存在时才使用它。

关于c - 缺少 locale_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163870/

相关文章:

c - 堆栈实现错误

linux - Nautilus 文件浏览器和 GtkIconView

c - undefined reference ,WebKitGTK

Python:无法在 Mac 上导入 Mechanize 模块

terminal - 须藤 : port: command not found

c - 确定 EOF 表达式

c - ubuntu中c程序的libxml

c - 为什么甚至在没有代码之前都会出现错误?

linux - Virtual Box 和 Windows 7 主机的 Gvim 重绘问题