”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > ## 如何在单个 CMake 项目中使用多个 C++ 编译器?

## 如何在单个 CMake 项目中使用多个 C++ 编译器?

发布于2024-11-08
浏览:317

## How Can I Use Multiple Compilers for C   in a Single CMake Project?

CMake:为单一语言导航多个编译器

CMake 遵循为一个文件中的所有 C 源文件分配单个 CMAKE_CXX_COMPILER 的原则CMakeLists.txt 文件。当尝试在单个 CMakeLists.txt 文件中组合主机编译和交叉编译时,这种方法会带来挑战。

困境:同一语言的多个编译器

根据最初的问题,问题的关键在于找到一种解决方案,以针对同一语言(特别是 C )使用多个编译器。

妥协:有限选项

不幸的是,CMake的设计并不能轻易满足这一要求。 CMake 维护一组适用于 CMakeLists.txt 文件中所有目标的编译器属性。因此,要使用多个编译器,有必要执行 CMake 两次。

替代方案:自定义命令或单独文件

一种解决方法涉及使用自定义命令,本质上是创建美化的 shell 脚本。然而,这种方法偏离了预期的目标。

更干净的解决方案需要将编译过程分离到不同的 CMakeLists.txt 文件中。虽然它阻止了不同架构之间的链接,但它消除了对冗余代码的需要。为了保持一致性,CMake 脚本的公共部分可以提取到单独的文件中,并通过 include() 函数包含。

缺点:方便复杂性

主要这种方法的缺点是失去了单命令编译的能力。为了缓解这种情况,可以使用首选脚本语言创建包装器脚本来调用必要的 CMake 命令。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3