Windows XP および Python 2.7 の Python モジュールにラップしたい作業中の C++ コードがあります。これまでにこれを行ったことがないので、swig と distutils を調べました。
インターフェイス ファイルと setup.py を作成し、次を使用してコンパイルしました。
python setup.py build_ext -c mingw32
このスクリプトは、module_wrap.cpp
mymodule.i
とmodule.cpp
ファイルから を作成し、次に と を作成しmodule_wrap.o
ますmodule.o
。をmodule.o
作成すると、未使用の変数と非推奨の char* に対して一連の警告が作成されますが、うまくいくようです。C++ のコードは私のものではないので、今はあまり深く入りたくないのです。
最後のステップは実行中です
g++.exe -shared -s build\temp.win32-2.7\Release\module_wrap.o build\temp.win32-2.7\Release\module.o build\temp.win32-2.7\Release\_module.def -LC:\Programme\Python27\libs -LC:\Programme\Python27\PCbuild -lpython27 -o build\lib.win32-2.7\_module.pyd
私は得る
Cannot export init_module: symbol not defined
error: command 'g++' failed with exit status 1
私は今これをたくさんグーグルで調べましたが、この問題の解決策を見つけることができません。以前に作成された_module.def
は、この init が含まれているため、この init をエクスポートしようとしているようです。
LIBRARY _module.pyd
EXPORTS
init_module
明らかにこれは機能しませんが、その理由はわかりません。誰か助けてくれませんか?