2009年06月18日
INDRIのJavaインターフェイスコンパイルエラー
仕事でINDRIと言う新しめの検索エンジンを使うことになった。
言語モデルと推論ネットワークを組み合わせて、良くなったぜ的なものらしい。
C++で書かれているが、JavaやPHPで使用できるラッパーがある。
で、そのJavaAPI部分のcompileに失敗していたので解決方法を。検索しても英語の情報すら出てこなかったので誰かの役に立つことを願ってメモしておく。
普通にlemur-4.9を落としてくる。
$ ./configure --prefix=$HOME --enable-java --with-javahome=$JAVA_HOME --with-swig=/usr/bin/swig
としてmakeするが、次のようなエラーが出る。次のエラーメッセージは4.6のものだけど、まぁこんな感じでJavaのコードがめちゃくちゃになってる。
/JAVA_HOME/javac -classpath java -d ../obj/java java/lemurproject/lemur/ArrayAccumulator.java
java/lemurproject/lemur/RetrievalMethod.java:12:
public abstract class class RetrievalMethod {
これはJavaのコードを自動生成したswigのバージョンが古いからのようだ。ちなみにCentOS4.4に最初から入っているswig1.3.21でおかしいコードが自動生成されているようだ。
最新のswig1.3.39を入れてmakeすると正しくinstallすることができた。
"INDRIのJavaインターフェイスコンパイルエラー"へのコメントはまだありません。