我试图从我的实验室编译一个项目,我使用ccmake从原始代码中改变的唯一内容是:
CMAKE_CXX_COMPILER /usr/bin/clang++
CMAKE_CXX_FLAGS -fPIC -std=c++11
CMAKE_EXE_LINKER_FLAGS -stdlib=libc++
该项目还依赖于我使用相同选项编译的另一个库。编译工作得很好,但链接在某些方面失败并给我们
/usr/bin/ld: main.cpp.o: undefined reference to symbol '_ZNSsC1EOSs@@GLIBCXX_3.4.14'
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
代码正在另一台机器上编译,但由于某些原因,我们无法在此系统上进行编译。我们尝试了许多没有成功的事情。
答案 0 :(得分:4)
main.cpp.o: undefined reference to symbol '_ZNSsC1EOSs@@GLIBCXX_3.4.14'
编译时应在链接和中使用-stdlib=libc++
。我怀疑将其添加到CMAKE_CXX_FLAGS
将解决问题。