Shinta Nakayama
shint****@edu*****
2006年 12月 7日 (木) 10:24:30 JST
電通大の中山です。 Windows環境でコンパイルすることができましたのでご報告します。 コンパイルできない原因は非常に簡単な事で、MeCab 0.92がMSVC8(VC++2005)でコンパイルされており、 Python2.5がMSVC7(VC++2006)でコンパイルされているため、両者のオブジェクトコードをリンクしようとしたときに、 コンパイルされたバージョンが違うため、リンクできなかったのが原因のようです。 MeCabの0.90はMSVC7でコンパイルされているため、リンクすることに成功し、python用のDLLを吐くことに成功しました。 他の方のために、以下にわたしが成功した方法を書いておきます。 ------------------------------------- WindowsXP Pro Python 2.5 MeCab 0.90 (MeCab0.91でできるかは未確認) MSVC7 以上をインストール済みの状態にしておく mecab-python-0.90.tar.gzをダウンロードして、以下のページを参考にしてsetup.pyを書き換える http://www.atransia.co.jp/home/fukamachi/Diary/2006/01/15/ この状態で setup.py install を実行すると MeCab_wrap.cxx がconstから非constへのコピーでビルドエラーが発生する。 MeCab_wrap.cxxのソースコードのエラー発生箇所をconst_castで潰す。その後改めてsetup.py install コレで、pythonにMeCabが組み込まれる。 この状態でtest.pyを実行しようとすると、DLLが読み込まれないといわれるので、libmecab.dllをパスの通っている箇所に移動させる。 この手順でpythonからMeCabを使うことができるようになりました。 ------------------------------------- 現在はMeCab0.92をMSVC7でコンパイル、また逆にPythonをMSVC8でコンパイルしようとして苦戦中。 どちらかでもいいですが、できた方いますか?