簡體   English   中英

在 Linux 上將 libc++ 鏈接到 CMake 項目

[英]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 生成的文件(刪除文件夾CMakeFilesCMakeCache.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM