[mecab-devel 102] Windows(64bit)上でmsvcを用いたpythonモジュールのビルド

Back to archive index

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) で参照されました。




Mecab-devel メーリングリストの案内
Back to archive index