[1176] Re:Linuxコンパイルエラー
投稿者:(ぱ)こと管理人
2008/12/31 01:45:36
>$ cd test/
>$ echo $LANG
>ja_JP.UTF-8
>$ find . -type f -exec nkf -w --overwrite {} \;
すみません、見落としていましたが(前回の投稿のコマンドプロンプトのところに
形跡がありました…)、この変換はmain/test以下でやっていたのですね。
Diksamは、エラーメッセージを日本語で出します(これはこれでどうかという
人もいそうですが)。また、そのエラーメッセージは、compilerとdvm以下の
error_message.cに埋め込まれています。
現在ダウンロードできるDiksamのソースでは、error_message.cの文字コードが
EUCになっています。以下のエラーは、これをDiksamの内部文字コード(wchar_t)に
変換しようとして失敗しているために発生しています。
>$ ../diksam test.dkm
>Assertion failure (wc_format != NULL) file..error.c line..92
>wc_format is null.
よって、LANGがja_JP.UTF-8な環境で動かすには、コンパイル前に、
error_message.cをUTF-8に変換しなければなりません。
それだけで動くかと思って試してみたところ、share/wchar.cの中に
1文字分のマルチバイト文字列が2文字までであることを想定しているところが
あって、UTF-8だと1文字が3バイトになるのでそこでもエラーが出ました。
というわけで、あわせて修正した版をもうじきUPします。