人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlのエラーについて

perlのエラーについて
Can't find 'boot_MeCab' symbol in /opt/local/lib/libMeCab.dylib
at /opt/local/lib/perl5/site_perl/5.16.3/darwin-thread-multi-2level/MeCab.pm line 11.
Compilation failed in require at ~.pl line 20, <DATA> line 855.
BEGIN failed--compilation aborted at ~.pl line 20, <DATA> line 855.

MeCab.pmの11行目はbootstrap MeCab;
となっています。

/opt/local/lib/libMeCab.dylib
at /opt/local/lib/perl5/site_perl/5.16.3/darwin-thread-multi-2level/MeCab.pm line 11.
の場所に'boot_MeCab' symbolがないってことですか?
portでsearchしてもboot_MeCabなんてなくて...
どうしたらこのエラーが解決しますでしょうか?

●質問者: Rinsuzu
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3

MeCab の本体はインストールしたのでしょうか?

MeCab のプロジェクトは、sourceforge から Google code に移ったみたいです。
sourceforge の方には、本体が置いてなさそうなので、取得は Google code の方から。
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#download

インストールの手順は、前と同じです(先のドキュメントにも書いてありますが)。

% tar zxfv mecab-0.996.tar.gz
% cd mecab-0.996
% ./configure
% make
% su
# make install

まずは、本体の方だけで、動くかどうかを確認しましょう。
http://d.hatena.ne.jp/mrgoofy33/20110406/1302019908

↑の後半には、MeCab.pm のことも書いてあります。
こちらも、まずは付属してくるテストプログラム (test.pl) が、動くかどうか確認しましょう。
MeCab のライブラリにパスが通ってなくて、みたいなことが書いてあるので、そちらも参考になるかも。


後、最近は、Text::MeCab ってのが良いらしいですよ。
http://wg.drive.ne.jp/miura/archives/2463
http://logic.moo.jp/data/archives/508.html


2 ● fiwa

ちょっと興味が湧いたので試してみました。
通常どおりMeCab、MeCab-ipadic、MeCab-perlをインストールしてMeCab-Perlにあったtest.plを実行してみたところ、同様のエラーが再現されました。
f:id:fiwa:20140423195858p:image
ところで、"boot_MeCab"というのはこういうことみたいです。

boostrap()
構文:
bootstrap($module)
これは、Perl での自動的な動的ロードの通常のエントリポイントです。
これは、以下の動作を行ないます:
・・・
+ ("boot_$module") を @dl_require_symbols に設定します

http://www.ie.u-ryukyu.ac.jp/~kono/perlman/cat3/Dynaloader.html

さて、MeCab-perlで make testしたところ、次のような警告が出ていました。

ld: warning: ignoring file /usr/local/lib/libmecab.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libmecab.dylib

そこでMeCabをi386でコンパイルし直してみました。

./configure CFLAGS='-arch i386' --with-charset=utf8
make
sudo make install

そうすると、perlからMeCabが使えるようになりました。
f:id:fiwa:20140423195857p:image
以上、環境による違いがあったら悪しからず。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ