向CMake引入一个新的编译器

Introduce a new compiler to CMake

本文关键字:一个 编译器 CMake      更新时间:2023-10-16

我们使用一个名为Cadul的特定编译器。它有自己的库、目标等。问题是,与GNU、Intel、Clang等"标准"编译器相比,CMake不支持它。

首先,我想使用交叉编译,但没有成功,因为主机和目标平台是相同的。

然后我查看了Modules,在那里我找到了名为"Compiler"的目录,其中包含为每个编译器和每个启用的语言指定的许多".cmake"文件。我试着用"Cadul"代替单词"GNU",并希望看到任何变化,比如"CXX编译器标识为Cadul…"。但这并没有发生。

然后我从cmake中删除了整个目录"Modules",并希望看到它不再工作。令人惊讶的是,它做到了。

那么,有人将新的编译器集成到Cmake中吗?具有自己的功能等。

这似乎是评论中推荐的,但还没有人将其浓缩为答案。

您可以通过将以下行添加到CMakeLists.txt(源代码)来选择编译器:

SET(CMAKE_C_COMPILER /path/to/c/compiler)
SET(CMAKE_CXX_COMPILER /path/to/cpp/compiler)

如果您需要进一步自定义,使用工具链文件效果良好。这里的文档中有一些示例。

是的,我以前做过。但是,您需要的不仅仅是设置编译器路径(因为CMake会尝试识别这个编译器,然后——因为它对CMake来说是未知的——会抛出一个错误)。

一个新"编译器"的示例实现可以在我的回答中找到:

  • 从makefile到cmake的一般规则

它显示了一个可以用enable_language(Cadul)替换的enable_language(FOO)示例。

相关文章: