将libc++链接到Linux上的CMake项目
Linking libc++ to CMake project on Linux
我想在CMake项目中将libc++与Arch Linux上的clang一起使用。我安装了libc ++并在CMakeLists中添加了以下行.txt正如Linux部分的LLVM站点"在您的程序中使用libc ++"中所述:
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 生成的文件(删除文件夹CMakeFiles
并CMakeCache.txt
)。
根据您的系统,设置也可能会有所帮助
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
目前在 CMake 中执行此操作的"正确"方法是使用工具链文件,直到添加特定的基本功能来切换标准库。
在该工具链文件中,您指定编译器等类似于此处的其他答案。
但是工具链的优点在于它们可以在命令行上快速交换(使用 -DCMAKE_TOOLCHAIN_FILE=path/to/file)或在安装了 CMakeTools 扩展的 VSCode 中,也可能在其他编辑器中。
但是,必须手动编写自己的工具链文件是另一件晦涩难懂的苦差事!没意思!
幸运的是,我偶然发现了这个 github,它维护了一套它们,所以你不必从头开始编写它们!应该不太可能弄错。
https://github.com/ruslo/polly
相关文章:
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- CMake 在 Windows 上的自定义位置上找不到 Boost
- 在 armhf 上使用 cmake 在 qt 上的编译问题 "Syntax error: wird unexpected (expecting " ) " "
- MSYS2 上的 CMake 冻结
- Linux Mint 19 上的 CMake 3.11 无法找到静态的 Boost 库
- 如何在 Mac 上的 Cmake 中链接 libav格式?
- Windows10 上的 VS Code + WSL 应用程序上的 CMake 扩展
- 为什么 spdlog/pthread 包含目录在 macos 上的 CMake 中通过 pkg_search_modul
- 窗户上的cmake,加载静态库
- 如何修复窗户上的 cmake find_package "Could NOT find SDL2"?
- 未安装的包上的 CMake "find_package"命令意外成功
- 使用Boost Python V1.67和Ubuntu上的CMAKE构建基本C 项目
- Windows上的CMake-zlib依赖关系错误
- OSX 优胜美地 10.10.3 上的 Cmake - GLEW:未找到包'gl'
- Windows 上的 Cmake 不添加共享库路径(适用于 linux)
- 如何在 MAC OS X 上的 CMAKE 项目中包含 C 静态库
- 将libc++链接到Linux上的CMake项目
- FreeBSD 上的 CMake 在 /usr/local/include 中看不到 GL/gl.h