最近在Linux下使用CMake编译程序时遇到了问题,在此记录一下。事情是这样的,我编译的程序使用了2个第三方库。写完CMakeLists,开始编译,然后就报链接错误,一直报一堆找不到的定义。一堆这样的:'*****std::__cxx11*****'undefinedreference我仔细检查了代码和CMakeLists,尝试了各种修改都无济于事。最后在同事和搜索引擎的帮助下,终于找到了问题所在。问题是我用的GCC版本和第三方库在编译的时候差别太大,两者的ABI不兼容。参考GCC提供的手册

最近在Linux下使用CMake编译程序时遇到了问题,在此记录一下。事情是这样的,我编译的程序使用了2个第三方库。写完CMakeLists,开始编译,然后就报链接错误,一直报一堆找不到的定义。一堆这样的:'*****std::__cxx11*****'undefinedreference我仔细检查了代码和CMakeLists,尝试了各种修改都无济于事。最后在同事和搜索引擎的帮助下,终于找到了问题所在。问题是我用的GCC版本和第三方库在编译的时候差别太大,两者的ABI不兼容。参考GCC提供的手册