2010-07-02 69 views
3

安裝GTK 1.2(包名GTK1)與MacPorts的扼流圈最終作,在libintl.h線440失蹤locale_t

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

你能在這裏複製xlocale.h 感謝 Alok.Kr. – 2010-07-02 09:15:27

回答

1

如果你不需要翻譯成英語以外的其他語言的郵件,你可以找到的各種libintl虛擬版本,其作爲直接替換。如果我沒有記錯,uclibc包含一個。您也可以在某處添加typedef void *locale_t;並解決該問題。

..這是一個錯誤。在POSIX 2008之前,locale_t未被添加到POSIX,這比libgtk1.2好一點;在那之前,它是一個GNU擴展。在任何情況下,由於它是一個非常新的且未得到廣泛支持的功能,配置應該測試它,並且只有在它存在時才使用它。

+0

我實際上是通過卸載gtk2來解決這個問題的,我只能假設清理了一些廢話的include目錄。我會給你這個問題的功勞,因爲你讓我知道這是一個gtk時間錯誤。 在一個相關的說明,我現在覺得方式笨拙。 – 2010-07-03 03:08:18

0

我在Mac OS X上有同樣的問題。它是由<xlocale.h><X11/Xlocale.h>使用_XLOCALE_H_作爲包含警衛引起的。如果兩者都包含在內,則只有其中一個包含在內。爲了解決這個問題,我編輯了/usr/include/X11/Xlocale.h,並將包含後衛改爲_X11_XLOCALE_H_

這個問題是fixed upstream但修復尚未作出下來到Mac OS X