日曜日, 8月 12, 2007

[Linux] MeCabのjavaバインディング

mecab-javaのMakeは成功するも、よく分からないエラー(Can't load IA 32-bit .so on a IA 32-bit platform)が。。(参考ページ)
[tf0054@localhost mecab-java-0.96]$ make test
env LD_LIBRARY_PATH=. /usr/java/jdk1.5.0_12/bin/java test
Cannot load the example native code.
Make sure your LD_LIBRARY_PATH contains '.'
java.lang.UnsatisfiedLinkError: /home/tf0054/mecab-java-0.96/libMeCab.so: Can't load IA 32-bit .so on a IA 32-bit platform
make: *** [test] Error 1
[tf0054@localhost mecab-java-0.96]$

でも、よく調べると普通にライブラリがロードできていないだけだった(LD_LIBRARY_PATHで解決)。なんかjavaって、いつもこんな風な分かり難いラーを返す気がします。。
[tf0054@localhost mecab-java-0.96]$ ldd libMeCab.so
linux-gate.so.1 => (0xffffe000)
libmecab.so.1 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7f0a000)
libm.so.6 => /lib/libm.so.6 (0xb7ee1000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7ed5000)
libc.so.6 => /lib/libc.so.6 (0xb7d80000)
/lib/ld-linux.so.2 (0x80000000)
[tf0054@localhost mecab-java-0.96]$

coLinuxだから?、MeCabはsunのJVMで動かそうとしていて、でもGCJ(GNU Compiler for the Java)も入ってるからこんがらがってんの?等々結構はまったのでメモ。

0 件のコメント: