在libintl.h第440行的最终make上安装带有macports choke的gtk 1.2(包名gtk1)。
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 */
答案 0 :(得分:1)
如果您不需要翻译成英语以外语言的邮件,您可以找到libintl
的各种虚拟版本作为替代品。如果我没记错的话,uclibc包括一个。您也可以在某处添加typedef void *locale_t;
并解决错误。
..这是错误。直到POSIX 2008,locale_t
才被添加到POSIX,这比libgtk1.2
更新一点;在那之前,它是一个GNU扩展。在任何情况下,由于它是一个非常新的且没有广泛支持的功能,配置应该测试它并且仅在它存在的情况下使用它。
答案 1 :(得分:0)
我在Mac OS X上遇到了同样的问题。它是<xlocale.h>
和<X11/Xlocale.h>
使用_XLOCALE_H_
作为包含警卫造成的。如果包含两者,则实际上只包括其中一个。要解决此问题,我修改了/usr/include/X11/Xlocale.h
并将包含保护更改为_X11_XLOCALE_H_
。
此问题是fixed upstream,但修复程序尚未归结为Mac OS X.