[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:03849] Re: Gtk compile error
田中@東大工学部と申します。
Shin <mituzi@xxxxxxxxxxxxxx> wrote:
>
> 慎@未来ネットです。
>
> SunSiteから、最新版のGtkを取ってきてコンパイルしました。そこで気になった
> んですが、./configureで-DX_LOCALEがnoになってしまいます。もし、-DX_LOCALE
> がなかったら、日本語はサポートされないのでしょうか?
>
(少なくともpureなlibc6-based debianでは)されません。
gtk+-0.99.2のconfigureスクリプトでは
int main ()
{
return setlocale (LC_ALL, "${with_locale}") == NULL;
}
を実行して、${with_locale}(--with-localeを指定しなかったら、その時の
locale)をlibcがサポートしているか判定していますが、debianの現在の
libc6(2.0.6-2)ではja_JP localeをサポートしていない(と思う)にもかかわらず、
setlocaleはサポートしている、と答えてしまい、判定に失敗します。
これを避けるには、
CFLAGS=-DX_LOCALE ./configure
として、明示的にX自身が持っている他国語サポートライブラリ(以下
X_LOCALE)を使用する、と指定すればよいのですが、debianで提供されるXのシ
ステムは、X_LOCALE関係をすべてdisableにしてコンパイルされているようで、
libX11.*はX_LOCALE関数群(Xsetlocaleなど)を持っていません。
libc5-compatなlibX11.*や、XFree86 Project Inc.配布のX331*.tgzに含まれ
るlibX11.*はX_LOCALEを持っています。
つまり、将来的にはlibc6がja_JP localeをサポートするのでしょうが、現在
まだサポートされていないのに、Xのほうはそれに先だってX_LOCALEをdisable
にされているので、pureなlibc6環境では(Xmb系の関数を使う)日本語機能はど
ちらからもサポートされません。
# これに気づかずに、このgtkの日本語パッチを作るとき苦労しました。
結果、libc6-based debianでgtkの日本語機能(正確には国際化機能)や、Xmb*系の
関数を使うには、
1. X関係はX331*.tgzを自前でインストール
2. libc5-compatなlibX11をリンク
の方法になると思います。2.はconfigureスクリプトなどの書換えが面倒なの
で、私は1.の方法を取っています。
このときも、CFLAGS=-DX_LOCALEとして明示的にX_LOCALEを使うことを示す必
要があります。
------------------------------------------------------------
田中伸哉(たなか・しんや)
shinya@xxxxxxxxxxxxxxxxxxxxxx