Strawberry Perl 5.22.1.3 (32bit)でText::Mecabをインストールできない
ポータブル版でWin-Rからportableshell.batを開き、cpanm --notest --interactive Text::MeCab
((cpanmでビルドする場合mecab-configのないWindowsでは--interactive
が必要。)) するとエラーになる。ビルドログには以下のメッセージ。
g++.exe -o blib\arch\auto\Text\MeCab\MeCab.xs.dll ... dll.exp path\to\MeCab\sdk\libmecab.lib: error adding symbols: File format not recognized collect2.exe: error: ld returned 1 exit status dmake.exe: Error code 129, while making 'blib\arch\auto\Text\MeCab\MeCab.xs.dll'
libファイルが認識されていないようだが、file
やgcc-ar t
してみると壊れてはいない雰囲気。
ためしに前にビルドが成功したStrawberry Perl 5.20.2.1に付いているcディレクトリと一時的に入れ替えてみたところ、正常にビルドできた。
5.22付属のMinGW環境が何かおかしいのかもしれない。ただWin32::Registryなど、特に外部ライブラリを必要としなさそうな他のモジュールのビルドは付属のもので正常にできた。
プログラムのバージョンを調べてみたら5.20.2の方が新しかった。いっそ入れ替えたまま使ってもいいかもしれない。
Perl | GNU ld | gcc |
---|---|---|
5.20.2 | 2.25 | 4.9.2 |
5.22.1 | 2.24 | 4.8.3 |