Macabのモジュールの導入メモ

MAC OSX10.5へのMacabのためのrubyモジュールの導入メモです。

インストール

$tar xvzf mecab-ruby-0.97.tar.gz
$cd mecab-ruby-0.97
$ruby extconf.rb 
$make
$sudo make install

インストールは成功したようにみえたが、付属のtest.rbを実行するとかたまっている様子。

そこで,

extconf.tbを以下のように修正。$LDFLAGの行を追加です。
require 'mkmf'

mecab_config = with_config('mecab-config', 'mecab-config')
use_mecab_config = enable_config('mecab-config')

`mecab-config --libs-only-l`.chomp.split.each { | lib |
  have_library(lib)
}

$CFLAGS += ' ' + `#{mecab_config} --cflags`.chomp
$LDFLAGS = '-L/usr/local/lib'
have_header('mecab.h') && create_makefile('MeCab')

mecabのライブラリパス(/usr/local/lib/libmecab.dylib)がみつからなかった問題かな?
これで、再度,extconf.rb を実行

$make clean     
$ruby extconf.rb 
$make
Makefileの修正

以上のmakeを実行すると

ld: warning in /usr/local/lib/libmecab.dylib, file is not of required architecture

というwarningがでました。architectureタイプが違う(mecabi386で構築しているのに、今回i386とppcの複数architectureのバイナリを作ろうとした)ということなので、以下のようにMakefile中のCFLAGとLDSHAREDを修正。i386のみのバイナリを構築するよう変更。

変更前

CFLAGS   =  -fno-common  -arch ppc -arch i386 -Os -pipe -fno-common -I/usr/local/include
...
...
LDSHARED = cc -arch ppc -arch i386 -pipe -bundle -undefined dynamic_lookup

変更後

CFLAGS   =  -fno-common   -arch i386 -Os -pipe -fno-common -I/usr/local/include
...
...
LDSHARED = cc  -arch i386 -pipe -bundle -undefined dynamic_lookup

これで再度、構築。

$make clean
$make
$sudo make install

これでwarningも出ずに構築成功。
これでtest.rbを実行してみると、とりあえず結果が出力されました。

この問題の解決にはhttp://casualconc.googlepages.com/installmecab-ruby2を参照させていただきました。