[Namazu-users-ja 1110] Re: mknmz コマンド実行時に以下のエラーがでてしまいます。

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2008年 7月 26日 (土) 15:13:29 JST


寺西です。

ika2006jp @ yahoo.co.jp wrote:
> 
> > > > > ロードしてから、
> > > >
> > > >
> > ロードしてから?って、いったい何をしたのでしょう。
> >
> > ...無視ぜず答えてくださいな。
> 
> すみません。
> ldd /usr/local/lib/libkakasi.so
> のようなコマンドを行ったと思います。

それはロードではありませんね。
# man ldd で調べてみてください。
 
> > kakasi_do が未定義ということは、libkakasi.so
> > が正しく作られていない
> > ということかもしれません。

どうやら、libkakasi.so が正しく作られていないようです。

> もう一回makeしてみましたが、エラーらしいものは、でません
> でした。

make clean して、 configure からやり直してみてください。
その時に何かエラーでませんか?

> > $ objdump -t /usr/local/lib/libkakasi.so | grep
> > kakasi_do
> >
> > と実行するとどうなるでしょう。
> 何もでてきませんでした。

明らかに libkakasi.so がおかしいです。問題の原因は libkakasi.so が
正しく作成されていないということでまず間違いありません。

ただ、何故 libkakasi.so が正しく作られていないかについては少々謎では
あります。
 
> > $ gcc test.c -I /usr/local/include -L /usr/local/lib
> > -lkakasi
> >
> > でコンパイルした時、エラーが発生しませんか?
> 
> エラーでました。
> #  gcc test.c -I /usr/local/include -L /usr/local/lib
> /tmp/cc3OuHCo.o: In function `main':
> test.c:(.text+0x19): undefined reference to `kakasi_do'
> collect2: ld はステータス 1 で終了しました

libkakasi.so が正しく作られていないため、リンクに失敗しているよう
です。

同じ理由で Text::Kakasi で libkakasi.so がリンクできていないという
ことになります。

libkakasi.so が正しく作られればコンパイルでエラーはでませんし、
Text::Kakasi もロードできるようになります。

> エラーができれば、できるのでしょうか?↓
> 
> > できたバイナリ a.out を実行して

はい。libkakasi.so が正しく作られていれば、a.out が作られて実行でき
ます。
ただ、これは問題を切り分けるために libkakasi.so が正しく作られてい
るか否かを調べるための作業でした。
ここまでで libkakasi.so が正しく作られていないことがわかりましたので、
次は libkakasi.so を正しく作るための作業に移りましょう。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E



Namazu-users-ja メーリングリストの案内