我正在尝试使用命令行编译模块https://github.com/Auctoris/boost_python_impex。
以下命令可成功构建并链接模块.so文件:
g++ -fPIC -I/usr/include/python3.6m library.cpp example.cpp -c
g++ -L /lib64 -shared example.o -o example.so -lpython3.6m -lboost_python3
但是,当我从python3导入模块时,出现以下错误消息:
import example
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dynamic module does not define module export function (PyInit_example)
我不理解此错误消息,因为library.cpp文件包含以下行:
BOOST_PYTHON_MODULE(example)
我正在从 Python3 导入模块。
我的编译命令出了什么问题/遗漏了什么?
我正在使用Fedora 64位。
谢谢!
答案 0 :(得分:0)
以下编译命令可在Fedora 29上使用:
g++ -fPIC -I/usr/include/python3.6m library.cpp example.cpp -shared -o example.so -lboost_python3