由于[abi:cxx11],两个增强库之间的符号不匹配

时间:2018-12-22 16:38:30

标签: c++ boost shared-libraries

我有一个链接到libboost_regex.so.1.68的C ++程序,我在不同位置有两个版本的so文件:

/usr/local/lib/libboost_regex.so.1.68 (compiled with gcc-7)
/usr/share/miniconda3/lib/libboost_regex.so.1.68 (binaries installed by conda)

第二个版本用于运行C ++程序的Python绑定。 运行python绑定时,python尝试使用第二个.so文件,但出现错误:

undefined symbol : boost::re_detail_106800::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char const*, char const*) const

我尝试使用(.so)来获取两个nm *.so | c++filt文件的符号,并意识到它们之间存在差异:

第一个库带有符号:

cpp_regex_traits_implementation<char>::transform_primary(...

第二个so文件(一个引起问题的文件)具有:

cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](...

除了[abi:cxx11]

以外,其他类似

什么是[abi:cxx11]?我可以重建我的/usr/local增强以使其符号中具有abi :: cxx11以避免不匹配吗?

0 个答案:

没有答案