[英]Linking libc++ to CMake project on Linux
我想在 CMake 項目中的 Arch Linux 上使用 libc++ 和 clang。 我安裝了 libc++ 並將以下幾行添加到 CMakeLists.txt 中,如“在程序中使用 libc++”的 Linux 部分LLVM 站點上所述:
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,它維護了一套它們,所以你不必從頭開始編寫它們! 誤會他們的可能性應該小很多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.