Takeshi Kobayakawa
takes****@gmail*****
2013年 7月 6日 (土) 10:14:39 JST
小早川と申します。 Windows(64bit)上で、msvcを用いてpythonのmecabモジュールをビルドしようと していますが、 __imp__PyString_AsString などのシンボルがリンクエラーをしてしまします。 pythonに同梱されているpython27.libに含まれるシンボルは __imp_PyString_AsString のように、__impに続くアンダースコアが一つしかないようなのですが、 これをリンクするにはどうしたらよいでしょうか。 setup.pyスクリプトとmecab.hを修正して、コンパイルが通るところまでは来た のですが... どうかよろしくお願いいたします。 mecab関連: mecab-0.996.exe mecab-python-0.996.tar.gz python: python-2.7.5 (64bit) OS: Windows 7 64bit コンパイラ: Visual C++ Express 2008 --- コンソールの出力(抜粋) C:\mecab-python-0.996>build C:\mecab-python-0.996>set MACHINE=x86 C:\mecab-python-0.996>set PROGRAMFILESx86_PATH=C:\Program F iles C:\mecab-python-0.996>if not "AMD64" == "x86" set PROGRAMFILESx86_PATH=C:\Program Files (x86) C:\mecab-python-0.996>call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 Setting environment for using Microsoft Visual Studio 2008 x86 tools. running bdist_wininst running build running build_py running build_ext building '_MeCab' extension C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\MeCab\sdk" -Ic:\python27\include -Ic:\python27\PC /TpMeCab_wrap.cxx /Fobuild\temp.win-amd64-2.7\Release\MeCab_wr ap.obj MeCab_wrap.cxx MeCab_wrap.cxx(3747) : warning C4530: C++ 例外処理を使っていますが、アン ワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO "/LIBPATH:C:\Program Files (x86)\MeCab\sdk" /LIBPATH:c:\python27 \libs /LIBPATH:c:\python27\PCbuild\amd64 libmecab.lib python27.lib /EXPORT:init_ MeCab build\temp.win-amd64-2.7\Release\MeCab_wrap.obj /OUT:build\lib.win-amd64-2 .7\_MeCab.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\_MeCab.lib /MANIFESTFILE: build\temp.win-amd64-2.7\Release\_MeCab.pyd.manifest ライブラリ build\temp.win-amd64-2.7\Release\_MeCab.lib とオブジェクト build\t emp.win-amd64-2.7\Release\_MeCab.exp を作成中 MeCab_wrap.obj : error LNK2019: 未解決の外部シンボル __imp__PyString_AsString が 関数 "char * __cdecl SWIG_Python_str_AsChar(struct _object *)" (?SWIG_Python_str _AsChar@@YAPADPAU_object@@@Z) で参照されました。 MeCab_wrap.obj : error LNK2019: 未解決の外部シンボル __imp__PyString_FromString が関数 "struct _object * __cdecl SWIG_Python_str_FromChar(char const *)" (?SWIG_ Python_str_FromChar@@YAPAU_object@@PBD @ Z) で参照されました。