- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 boost-python 构建一个 hello world C++ Python 扩展。
我从 https://www.mantidproject.org/Boost_Python_Introduction 得到了以下源代码:
// test.cpp
#include <iostream>
#include <boost/python.hpp>
void sayHello()
{
std::cout << "Hello, Python!\n";
}
BOOST_PYTHON_MODULE(test) // Name here must match the name of the final shared library, i.e. mantid.dll or mantid.so
{
boost::python::def("sayHello", &sayHello);
}
但是,当我尝试使用以下命令进行编译时:
g++ -fPIC -I/usr/include/python3.6m test.cpp -c
g++ -shared test.o -o test.so -I/usr/include/python3.6m -I/lib64/libboost_python3
此命令成功编译代码并创建库文件test.so。
但是,当我尝试在 python3 中导入模块时,出现以下错误:
ImportError:/home/yt/C++/test.so: undefined symbol: _ZNK5boost6python7objects21py_function_impl_base9max_arityEv
链接Import Error on boost python hello program似乎建议命令我在上面使用的是通过添加 -I/usr/include/python3.6m 和 -I/lib64/libboost_python3 来解决问题,但它没有。
我做错了什么?
谢谢!
操作系统:Fedora 29 x86_64
最佳答案
谢谢大家!
问题是链接器命令。正确的是:
g++ -fPIC -I/usr/include/python3.6m test.cpp -c
g++ -L/lib64 -shared test.o -o test.so -lpython3.6m -lboost_python3
现在可以在 Fedora 29 上运行
关于python - 导入 Boost Python 模块时出错 (function_impl_base9max_arityEv),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55456049/
我是一名优秀的程序员,十分优秀!