2014年1月18日土曜日

Windows8 でのmecab javaバインディング ビルド

mecabとjavaバインディングをビルドしたのでそのメモ
環境は、Windows 8.1 x64, Visual C++ 2010 Express
           mecab0.996

インストール


Windows Software Development Kit (SDK) for Windows 8.1 をインストール
http://msdn.microsoft.com/en-US/windows/desktop/bg162891


mecabソースをダウンロード
https://mecab.googlecode.com/files/mecab-java-0.996.tar.gz
https://mecab.googlecode.com/files/mecab-0.996.tar.gz


 

libmecabビルド

 

 Configure

Configureする必要がるのか?
取り敢えず、MsysでConfigureする

cd mecab-0.996
./configure

make.bat修正


mecab-0.996/src/make.bat のパスを環境に合わせて修正
私の環境では次のように、上三行を変更

Set PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;%PATH%
Set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include;%INCLUDE%
Set LIB=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;%LIB%


libmecab.dllを作成

mecab-0.996/src/make.batを実行

mecab-0.996にlibmecab.dllができる


 

 

Javaバインディング



用意されてるバインディング(MeCab_wrap.cxx)だと動かないので
自分で作成する

mecab-0.996/src/mecab.h を修正する

「#ifndef SIWG」を「#ifndef SWIG」に全部修正(何か所かある)

swigを実行する

cd mecab-0.996\swig
swig -java -package org.chasen.mecab -c++ MeCab.i

MeCab_wrap.cxxが生成される
swigがない場合はここから、パスを通しても完全パス指定でもOK


MeCab_wrap.dllを作成


mecab-java-0.997に作成したlibmecab.dllとMeCab_wrap.cxxをコピー
下のようなコマンドを実行する。パスは環境に合わせて変更

Set PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;%PATH%
Set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include;%INCLUDE%
Set LIB=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;%LIB%


cl /EHsc /LD /I mecab-0.996\src /I "C:\Program Files (x86)\Java\jdk1.7.0_09\include" /I "C:\Program Files (x86)\Java\jdk1.7.0_09\include\win32" MeCab_wrap.cxx libmecab.dll


 

動作確認

libmecab.dllとMeCab_wrap.dllをコピーして 
適当なサンプルを実行


参考サイト:
http://ftablog.s56.xrea.com/index.php?itemid=167
内容はほぼ同じ(Windows7,mecab0.97)

0 件のコメント: