【发布时间】:2010-11-18 22:20:28
【问题描述】:
我正在尝试创建一个链接到静态库的共享库(实际上是一个 Python 模块)。这两个库是同一个项目的一部分,并且使用 cmake 构建。
现在,共享库是这样构建的:
add_library(MyLibPython SHARED ${PYTHON_WRAPPERS_SRC})
set_target_properties(MyLibPython PROPERTIES PREFIX "")
target_link_libraries(MyLibPython MyLibStatic ${LIBS})
这构建没有错误,但是当我尝试导入 Python 模块时,我得到:
导入错误: lib/python/MyLibPython.so:未定义符号:_Zone_of_my_MyLibStatic_functions我还有许多以类似方式构建的可执行文件(单元测试),它们运行良好。
我应该补充一下,这是在 Linux 上使用 gcc。
【问题讨论】:
-
您是否尝试静态链接到 Boost::Python?或者您是否静态链接到包装库?如果是前者:请在此处查看我的答案:stackoverflow.com/questions/4120169/…
-
是后者。但是感谢您的链接,有趣的是,静态链接到 boost python 并不总是有效...
标签: c++ linux gcc cmake boost-python