野良ビルドなんかキライ。

実験用にDebianの環境構築中。aptitudeでお気楽インストール〜ってやってたら、MeCabRubyバインディングのパッケージがないので野良ビルド
しかし盛大にエラーが出る。

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側で試したら普通にビルドできたし……。