libboost 中的未定义符号

Undefined symbol in libboost

我看到以下错误

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,所有库都在标准位置。

PyUnicode_AsUTF8String 函数是 python 运行时的一部分。您也应该 link 您对 python 库的扩展,方法是向 GCC 提供适当的 linker 选项。请注意 python 3 和 python 2 之间存在差异。