我正在通过 BoostPython 库向 Python 公开一个简单的 C++ 代码:
#include <boost/python/detail/wrap_python.hpp>
#include <boost/python.hpp>
using namespace boost::python;
bool test_api( void ){
return true;
};
BOOST_PYTHON_MODULE(materials) {
def( "test_api", test_api );
}
在我尝试导入这个模块后,python 解释器返回错误:
ImportError: ./example.so: undefined symbol: _Py_RefTotal
我已将模块静态链接到 boost python 库,python 动态库 libpython3.2m.so 和 libpython3.2m.so.1.0 存在于工作目录中。
关于在哪里可以找到丢失的符号有什么建议吗?
Boost 库与 Python 安装不一致。
cd boost_source
./bootstrap.sh --with-libraries=python --prefix=../boost_target
配置 Boost 以指向正确的 Python 安装:
vim tools/build/v2/user-config.jam
编辑指向 Python 的行:
using python : version_number
: path_to_python_executable
: path_to_python_include_directory
: path_to_python_library_directory
然后,运行构建系统:
./b2
我是一名优秀的程序员,十分优秀!