実験用にDebianの環境構築中。aptitudeでお気楽インストール〜ってやってたら、MeCabのRubyバインディングのパッケージがないので野良ビルド。
しかし盛大にエラーが出る。
user@debian:~/mecab-ruby-0.96_$ make g++ -I. -I. -I/usr/local/lib/ruby/1.8/i686-linux -I. -DHAVE_MECAB_H -fPIC -g -O2 -c MeCab_wrap.cpp MeCab_wrap.cpp: In function ‘const mecab_node_t* mecab_node_t_begin_node_list(mecab_node_t*, size_t)’: MeCab_wrap.cpp:1814: error: ‘struct mecab_node_t’ has no member named ‘sentence_length’ MeCab_wrap.cpp:1816: error: ‘struct mecab_node_t’ has no member named ‘begin_node_list’ MeCab_wrap.cpp:1817: error: ‘struct mecab_node_t’ has no member named ‘begin_node_list’ MeCab_wrap.cpp: In function ‘const mecab_node_t* mecab_node_t_end_node_list(mecab_node_t*, size_t)’: MeCab_wrap.cpp:1822: error: ‘struct mecab_node_t’ has no member named ‘sentence_length’ MeCab_wrap.cpp:1824: error: ‘struct mecab_node_t’ has no member named ‘end_node_list’ MeCab_wrap.cpp:1825: error: ‘struct mecab_node_t’ has no member named ‘end_node_list’ MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_filename_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:1927: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:1927: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:1927: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:1927: error: expected `;' before numeric constant MeCab_wrap.cpp:1940: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1940: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1940: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1940: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:1940: error: expected `)' before ‘;’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_charset_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:1951: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:1951: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:1951: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:1951: error: expected `;' before numeric constant MeCab_wrap.cpp:1964: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1964: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1964: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1964: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:1964: error: expected `)' before ‘;’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_size_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:1975: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:1975: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:1975: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:1975: error: expected `;' before numeric constant MeCab_wrap.cpp:1988: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1988: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1988: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:1988: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:1988: error: expected `)' before ‘;’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_type_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:1999: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:1999: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:1999: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:1999: error: expected `;' before numeric constant MeCab_wrap.cpp:2012: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2012: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2012: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2012: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:2012: error: expected `)' before ‘;’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_lsize_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:2023: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:2023: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:2023: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:2023: error: expected `;' before numeric constant MeCab_wrap.cpp:2036: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2036: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2036: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2036: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:2036: error: expected `)' before ‘;’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_rsize_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:2047: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:2047: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:2047: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:2047: error: expected `;' before numeric constant MeCab_wrap.cpp:2060: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2060: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2060: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2060: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:2060: error: expected `)' before ‘;’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_version_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:2071: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:2071: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:2071: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:2071: error: expected `;' before numeric constant MeCab_wrap.cpp:2084: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2084: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2084: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2084: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:2084: error: expected `)' before ‘;’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_DictionaryInfo_next_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:2095: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:2095: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:2095: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:2095: error: expected `;' before numeric constant MeCab_wrap.cpp:2096: error: ‘result’ was not declared in this scope MeCab_wrap.cpp:2108: error: expected type-specifier before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2108: error: expected `>' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2108: error: expected `(' before ‘mecab_dictionary_info_t’ MeCab_wrap.cpp:2108: error: expected primary-expression before ‘>’ token MeCab_wrap.cpp:2108: error: expected `)' before ‘;’ token MeCab_wrap.cpp:2109: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_new_DictionaryInfo(int, VALUE*, VALUE)’: MeCab_wrap.cpp:2136: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:2136: error: ‘result’ was not declared in this scope MeCab_wrap.cpp:2143: error: expected primary-expression before ‘)’ token MeCab_wrap.cpp:2143: error: expected `;' before ‘new’ MeCab_wrap.cpp: At global scope: MeCab_wrap.cpp:2159: error: variable or field ‘free_mecab_dictionary_info_t’ declared void MeCab_wrap.cpp:2159: error: ‘mecab_dictionary_info_t’ was not declared in this scope MeCab_wrap.cpp:2159: error: ‘arg1’ was not declared in this scope MeCab_wrap.cpp:2159: error: expected ‘,’ or ‘;’ before ‘{’ token MeCab_wrap.cpp: In function ‘VALUE _wrap_Node_sentence_length_get(int, VALUE*, VALUE)’: MeCab_wrap.cpp:2741: error: ‘struct mecab_node_t’ has no member named ‘sentence_length’ MeCab_wrap.cpp: In function ‘VALUE _wrap_Tagger_formatNode(int, VALUE*, VALUE)’: MeCab_wrap.cpp:3302: error: invalid conversion from ‘const MeCab::Node*’ to ‘MeCab::Node*’ MeCab_wrap.cpp:3302: error: initializing argument 1 of ‘virtual const char* MeCab::Tagger::formatNode(MeCab::Node*)’ MeCab_wrap.cpp: In function ‘VALUE _wrap_Tagger_dictionary_info(int, VALUE*, VALUE)’: MeCab_wrap.cpp:3321: error: ‘DictionaryInfo’ is not a member of ‘MeCab’ MeCab_wrap.cpp:3321: error: ‘result’ was not declared in this scope MeCab_wrap.cpp:3336: error: ‘DictionaryInfo’ is not a member of ‘MeCab’ MeCab_wrap.cpp:3336: error: expected primary-expression before ‘)’ token make: *** [MeCab_wrap.o] エラー 1 user@debian:~/mecab-ruby-0.96_$
なんかおかしい。gcc4系だから?でもOS X側で試したら普通にビルドできたし……。