libboost 中未定义的符号

Posted

技术标签:

【中文标题】libboost 中未定义的符号【英文标题】:Undefined symbol in libboost 【发布时间】:2015-03-18 18:07:17 【问题描述】:

我看到以下错误

ImportError: /usr/local/lib/libboost_python.so.1.57.0: 
undefined symbol: PyUnicode_AsUTF8String

在 .so 文件中,我看到以下符号未定义

@Ubuntu-1204-precise-64-minimal:/usr/local/lib$ nm libboost_python.so.1.57.0
| grep PyUnicode_AsUTF8String
             U PyUnicode_AsUTF8String

这个符号未定义的原因是什么?

我还检查了 ldd,所有库都在标准位置。

【问题讨论】:

【参考方案1】:

PyUnicode_AsUTF8String 函数是 python 运行时的一部分。您也应该通过向 GCC 提供适当的链接器选项,将您的扩展链接到 python 库。请注意,python 3 和 python 2 之间存在差异。

【讨论】:

以上是关于libboost 中未定义的符号的主要内容,如果未能解决你的问题,请参考以下文章

由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号

为设备编译 Boost 1.54 XCode5 - 致命错误:后端错误:符号“___umodsi3”不能在减法表达式中未定义

删除 C# 二进制文件中未使用的预处理器符号

在 Visual Studio 中未定义 UNITY_EDITOR

扑动中未定义的类'UserCredential'

为啥子组件中未定义上下文?