boost.python 未定义符号问题
Posted
技术标签:
【中文标题】boost.python 未定义符号问题【英文标题】:boost.python undefined symbol issue 【发布时间】:2015-01-06 22:32:34 【问题描述】:我正在尝试用boost.python编译一个项目,但是遇到了以下问题
undefined symbol: _ZN5boost6python7objects23register_dynamic_id_auxENS0_9type_infoEPFNSt3__14pairIPvS2_EE
我正在使用 cmake 构建它
...
# Find necessary packages
find_package( PythonLibs 2.7 REQUIRED )
include_directories( $PYTHON_INCLUDE_DIRS )
find_package( Boost COMPONENTS python REQUIRED )
include_directories( $Boost_INCLUDE_DIR )
add_library(test_py SHARED $SOURCE_FILES)
list(APPEND CMAKE_LIBRARY_PATH $CMAKE_LIBRARY_OUTPUT_DIRECTORY)
target_link_libraries(test_py lib1)
target_link_libraries(test_py boost_python)
target_link_libraries(test_py python2.7)
set_target_properties(test_py PROPERTIES PREFIX "")
之后我有一个将所有文件复制到目录 test_py 的设置脚本,其中包含 init.py 文件
与
from test_py import *
任何想法我错过了什么?
干杯,迈克
【问题讨论】:
【参考方案1】:设置 LD_LIBRARY_PATH 解决了这个问题。
【讨论】:
你最后把它设置成什么? boost 共享库的位置。但是,现在您可能需要考虑 pybind11。我发现它更容易使用。以上是关于boost.python 未定义符号问题的主要内容,如果未能解决你的问题,请参考以下文章
我的 Py_NoneStruct 符号(python、boost.python)在哪里?
Boost.Python.ArgumentError:python str 未转换为 std::string