从PosipyPython中暴露C++到Python错误 我通过PosipyPython库将一个简单的C++代码暴露给Python: #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 ); }
我已经将该模块静态链接到boost python库和python动态库libpython3.2m.so和libpython3.2m.so.1.0,它们都在工作目录中从PosipyPython中暴露C++到Python错误 我通过PosipyPython库将一个简单的C++代码暴露给Python: #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,c++,boost,Python,C++,Boost,我已经将该模块静态链接到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
关于在哪里找到缺少的符号有什么建议吗?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
_Py_RefTotal在object.h中的预编译器保护下定义:
$less include/python3.6m/object.h
我链接了python3.6m,但包含了include/python3.6dm中的头文件。修复了包括ptyhon3.6m在内的问题尝试包含模块定义需要此包含。禁止。它仍然缺少符号。我注意到libboost_python.a和libboost_python.so中的符号都是未定义的:这看起来很有希望。。。我没有python3boost库。我将重新编译boost,确保boost与我的python安装一致。
$less include/python3.6m/object.h
#ifdef Py_REF_DEBUG
PyAPI_DATA(Py_ssize_t) _Py_RefTotal;
...
...
#endif /* Py_REF_DEBUG */