● 概要
MacBook Air (OS 10.7.3)にcabochaを入れようとしたらそのままではうまくいかなかったので、メモ。
● 状況
本家サイトの指示通りに、
CRF++, MeCabをインストール後、cabochaをインストールする。./cofigureの後、makeすると、
libtool: link: g++ -dynamiclib -o .libs/libcabocha.4.dylib .libs/chunk_learner.o .libs/chunker.o .libs/dep.o .libs/dep_learner.o .libs/eval.o .libs/learner.o .libs/libcabocha.o .libs/morph.o .libs/ne.o .libs/normalizer.o .libs/param.o .libs/parser.o .libs/selector.o .libs/string_buffer.o .libs/svm.o .libs/svm_learn.o .libs/tree.o .libs/ucs.o .libs/utils.o /usr/local/lib/libcrfpp.dylib -L/usr/local/lib /usr/local/lib/libmecab.dylib -lstdc++ -install_name /usr/local/lib/libcabocha.4.dylib -compatibility_version 5 -current_version 5.0 -Wl,-single_module
Undefined symbols for architecture x86_64:
"_iconv_close", referenced from:
CaboCha::Iconv::~Iconv()in ucs.o
CaboCha::Iconv::~Iconv()in ucs.o
CaboCha::Iconv::~Iconv()in ucs.o
"_iconv", referenced from:
CaboCha::Iconv::convert(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)in ucs.o
"_iconv_open", referenced from:
CaboCha::Iconv::open(char const*, char const*)in ucs.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [libcabocha.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
といったエラーが出る。
● 解決法
Homebrewでlibconvを入れてしまう。
Homebrew自体のインストール。
> /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
Homebrewを使って、libiconvのインストール。
> brew install libiconv
加えて、何か。
> brew link libiconv
(この操作が必要かどうかは未確認。)
以上を済ませた状態で、cabochaの./cofigureからmake以降をすればいい。
動作確認。
> echo "すもももももももものうち" | cabocha -f 1
* 0 1D 0/1 0.859390
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ O
も 助詞,係助詞,*,*,*,*,も,モ,モ O
* 1 3D 0/1 0.544642
もも 名詞,一般,*,*,*,*,もも,モモ,モモ O
も 助詞,係助詞,*,*,*,*,も,モ,モ O
* 2 3D 0/1 0.000000
もも 名詞,一般,*,*,*,*,もも,モモ,モモ O
の 助詞,連体化,*,*,*,*,の,ノ,ノ O
* 3 -1D 0/0 0.000000
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ O
EOS
● 失敗した方法
Leopardで起こる似た症状に対して、ucs.cppを書き換える方法があったが、
この事例ではうまくいかない。
MacBook Air (OS 10.7.3)にcabochaを入れようとしたらそのままではうまくいかなかったので、メモ。
● 状況
本家サイトの指示通りに、
CRF++, MeCabをインストール後、cabochaをインストールする。./cofigureの後、makeすると、
libtool: link: g++ -dynamiclib -o .libs/libcabocha.4.dylib .libs/chunk_learner.o .libs/chunker.o .libs/dep.o .libs/dep_learner.o .libs/eval.o .libs/learner.o .libs/libcabocha.o .libs/morph.o .libs/ne.o .libs/normalizer.o .libs/param.o .libs/parser.o .libs/selector.o .libs/string_buffer.o .libs/svm.o .libs/svm_learn.o .libs/tree.o .libs/ucs.o .libs/utils.o /usr/local/lib/libcrfpp.dylib -L/usr/local/lib /usr/local/lib/libmecab.dylib -lstdc++ -install_name /usr/local/lib/libcabocha.4.dylib -compatibility_version 5 -current_version 5.0 -Wl,-single_module
Undefined symbols for architecture x86_64:
"_iconv_close", referenced from:
CaboCha::Iconv::~Iconv()in ucs.o
CaboCha::Iconv::~Iconv()in ucs.o
CaboCha::Iconv::~Iconv()in ucs.o
"_iconv", referenced from:
CaboCha::Iconv::convert(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)in ucs.o
"_iconv_open", referenced from:
CaboCha::Iconv::open(char const*, char const*)in ucs.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [libcabocha.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
といったエラーが出る。
● 解決法
Homebrewでlibconvを入れてしまう。
Homebrew自体のインストール。
> /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
Homebrewを使って、libiconvのインストール。
> brew install libiconv
加えて、何か。
> brew link libiconv
(この操作が必要かどうかは未確認。)
以上を済ませた状態で、cabochaの./cofigureからmake以降をすればいい。
動作確認。
> echo "すもももももももものうち" | cabocha -f 1
* 0 1D 0/1 0.859390
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ O
も 助詞,係助詞,*,*,*,*,も,モ,モ O
* 1 3D 0/1 0.544642
もも 名詞,一般,*,*,*,*,もも,モモ,モモ O
も 助詞,係助詞,*,*,*,*,も,モ,モ O
* 2 3D 0/1 0.000000
もも 名詞,一般,*,*,*,*,もも,モモ,モモ O
の 助詞,連体化,*,*,*,*,の,ノ,ノ O
* 3 -1D 0/0 0.000000
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ O
EOS
● 失敗した方法
Leopardで起こる似た症状に対して、ucs.cppを書き換える方法があったが、
この事例ではうまくいかない。