代码之家  ›  专栏  ›  技术社区  ›  motam79

两个boost库之间的符号不匹配,原因是[abi:cxx11型]

  •  0
  • motam79  · 技术社区  · 7 年前

    libboost_regex.so.1.68

    /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绑定。 .so 文件和我得到的错误:

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

    所以 nm *.so | c++filt )并意识到它们之间有区别:

    第一个库有符号:

    cpp_regex_traits_implementation<char>::transform_primary(...
    

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

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

    除了 [abi:cxx11]

    是什么 ? 我能重建我的 /usr/local

    0 回复  |  直到 7 年前