c++ - 将 libc++ 链接到 Linux 上的 CMake 项目

标签 c++ linux cmake llvm clang++

我想在 CMake 项目的 Arch Linux 上使用 libc++ 和 clang。我安装了 libc++ 并向 CMakeLists.txt 添加了以下行,如 LLVM site 中所述在“在程序中使用 libc++”的 Linux 部分:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "-lc++abi")

我已经在链接器的标志中尝试了“++abi”,但它没有帮助。我需要一些帮助来弄清楚我应该在我的 CMakeLists.txt 中写什么。

最佳答案

不要忘记将编译器设置为 clang++:

set(CMAKE_CXX_COMPILER "clang++")

此外,清除 cmake 生成的文件(删除文件夹 CMakeFilesCMakeCache.txt)。

根据您的系统,它也可能有助于设置

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")

关于c++ - 将 libc++ 链接到 Linux 上的 CMake 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27178106/

相关文章:

c++ - Visual Studio Code : exclude sections of a file from autoformat?

c++ - 如何修复对 strstr 没有匹配的函数调用

linux - linux 变量 $BASH_SUBSHELL 与 $SHLVL 之间的区别

c++ - 谷歌 Protocol Buffer 。 'make install' protobuf构建跨臂时不生成so文件

c++ - boost & asio 作为 Cmake 大项目的一部分

c++ - gtest/gmock 匹配器,用于一对迭代器之间的子序列

linux - 这是systemd中的错误吗?

c++ - 如何将 clang-tidy 集成到 CMake 和 GCC?

qt - (如何)我可以取消未找到包配置文件的警告吗?

c++ - "Edge Detection"和 "Image Contours"之间的区别