我有一个可用的 c++ 代码,我想将它包装到 Windows XP 和 Python 2.7 上的 python 模块中。我以前从未这样做过,所以我研究了 swig 和 distutils。
我创建了一个接口文件和一个 setup.py 并使用编译
python setup.py build_ext -c mingw32
该脚本module_wrap.cpp
从我的module.i
andmodule.cpp
文件创建 a ,然后创建 amodule_wrap.o
和 a 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
似乎试图导出这个初始化,因为它包含
LIBRARY _module.pyd
EXPORTS
init_module
显然这不起作用,但我不知道为什么。有谁可以帮我离开这里吗?