CMake:為單一語言導航多個編譯器
CMake 遵循為一個檔案中的所有C 原始檔分配單一CMAKE_CXX_COMPILER 的原則CMakeLists.txt 檔案。當嘗試在單一 CMakeLists.txt 檔案中組合主機編譯和交叉編譯時,這種方法會帶來挑戰。
困境:同一語言的多個編譯器
根據最初的問題,問題的關鍵在於找到一種解決方案,以針對同一語言(特別是C )使用多個編譯器。
妥協:有限的選項
不幸的是,CMake的設計並不能輕易滿足這一要求。 CMake 維護一組適用於 CMakeLists.txt 檔案中所有目標的編譯器屬性。因此,要使用多個編譯器,必須執行 CMake 兩次。
替代方案:自訂命令或單獨檔案
一種解決方法涉及使用自訂命令,本質上是創建美化的 shell 腳本。然而,這種方法偏離了預期的目標。
更簡潔的解決方案需要將編譯過程分離到不同的 CMakeLists.txt 檔案中。雖然它阻止了不同架構之間的鏈接,但它消除了對冗餘程式碼的需求。為了保持一致性,可以將 CMake 腳本的公共部分提取到單獨的檔案中,並透過 include() 函數包含。
缺點:過於複雜
主要這種方法的缺點是失去了單命令編譯的能力。為了緩解這種情況,可以使用首選腳本語言來建立包裝器腳本來呼叫必要的 CMake 命令。
以上是## 如何在單一 CMake 專案中使用多個 C 編譯器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!