fedora 9 で yamcha と cabocha を使いたい、そう思って、make してみました。
エラーが出ます。
param.cpp:102: error: 'strlen' was not declared in this scope param.cpp:103: error: 'strncmp' was not declared in this scope
ちょっと気が遠くなりかけた。そんなとき。
つまるところ、gcc 4.2 以前と gcc 4.3 の違いに起因するようです。
gcc 4.2 以前では、string.h や stdlib.h のようなヘッダファイルは明示的にインクルードしていなくても、そのヘッダファイルでプロトタイプ宣言されている関数を呼び出すことができました。
gcc 4.3 では明示的なインクルードが必要です。
とりあえず、 src/common.h に #include <string.h> を追加して make してみます。
うまくいっているようだ、、、あ。
mkdarts.cpp:85: error: ‘atoi’ is not a member of ‘std’
めげずに、 mkdarts.cpp に #include <cstdlib> を追加して make してみます。
※ std ネームスペースなので stdlib.h ではない。
できました!パッチはこちら。
適用例
wget http://chasen.org/~taku/software/YamCha/src/yamcha-0.33.tar.gz tar zxvf yamcha-0.33.tar.gz patch -p0 < yamcha.patch cd yamcha-0.33 ./configure --prefix=/usr/local make make check make install cd .. rm -rf yamcha-0.33