【发布时间】:2015-01-26 11:45:48
【问题描述】:
我想在 CMake 项目中在 Arch Linux 上使用 libc++ 和 clang。我安装了 libc++ 并将以下行添加到 CMakeLists.txt 中,如“在程序中使用 libc++”的 Linux 部分中的LLVM site 所述:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "-lc++abi")
我在链接器的标志中只尝试了“++abi”,但没有帮助。我需要一些帮助来弄清楚我应该在 CMakeLists.txt 中写什么。
【问题讨论】:
-
你得到什么错误信息?
-
@RichardHodges CMake 没有给出任何错误消息,但是当我尝试使用 std::string 例如时,clang 给了我以下消息:
implicit instantiation of undefined template 'std::__l::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>' -
看起来你没有
#include <string> -
@RichardHodges 我做了,当我使用 libstdc++ 时一切正常
-
尝试将 -lc++ 添加到链接器命令行。
标签: c++ linux cmake llvm clang++