自定义编译器
如果您使用的编译器未在 CLion 中 默认支持 ,请切换到 自定义编译器选项。 您可以定义任何 IDE 尚未识别的编译器,甚至是可能未公开提供的稀有编译器。 此选项对于 嵌入式开发特别有用。
准备编译器描述
为了在 CLion 中使用自定义编译器,您需要创建一个包含其描述的配置文件,格式为 YAML。
在自定义编译器 YAML 文件中,您需要确定编译器的以下详细信息:
支持的语言:每种支持的语言或语言变体至少需要一个配置部分。
编译器二进制文件名称(可以有多个):某些工具链对 C 和 C++、不同的内存模型、语言变体等使用不同的编译器二进制文件;这些信息可以在工具链文档中找到。
标准包含目录位置:要识别这些目录,请阅读编译器文档或查看已安装的工具链文件夹树。
预定义宏列表:某些编译器可以报告其预定义宏的列表,而其他编译器则不能;请参考编译器文档以了解如何获取这些宏。
自定义编译器配置格式包括一个必需的 compilers部分,其中包含记录列表。 每条记录都包含编译器的描述以及用于识别编译器调用的多个标签。
第一个匹配的记录用于为 CLion 语言引擎提供编译器信息,包括系统定义宏列表、Clangd 的目标平台名称以及系统头文件路径列表。

description编译器名称(必需参数)
match-sources源文件名称的正则表达式
match-compiler-exe编译器可执行文件名称的正则表达式,要求从任何位置使用具有此名称的编译器(必需参数)
match-args编译器命令行键
match-language检测到的语言,C 或 CPP(仅 CMake 需要)
code-insight-target-name用于 Clangd的目标平台名称
include-dirs编译器特定的头文件搜索路径;此设置中允许的变量为
${compiler-exe}、${compiler-exe-dir}、${user-home}和${project-path}。defines以
'name: value'YAML 格式的编译器特定宏(value部分可以为空)defines-text以
'#define name value'C 格式的编译器特定宏(value部分可以为空)我们准备了一些 示例来帮助您入门。 您可以直接使用它们,也可以将其作为创建您自己配置的模板。
在工具链设置中指定 .yaml 配置
转到 。
选中 使用自定义编译器配置 (*.yaml) 复选框并提供路径:

切换到 工具链 对话框,选择要编辑的工具链或 创建一个新的工具链。
将 C 编译器 和 C++ 编译器 字段中的路径更改为您的自定义编译器:

或者,您可以在 Makefile 中手动传递自定义编译器,或通过 CMake 配置文件设置传递。 在这种情况下,自定义编译器将仅用于当前项目。
检查自定义编译器
当自定义编译器配置成功后,您的代码将正确解析,所有代码辅助操作将按预期工作。 要仔细检查您的自定义编译器是否正确设置,请执行以下操作:
在 CLion 中编辑 .yaml 配置
CLion 默认支持 YAML 语言(请参阅 CLion 功能支持多种语言)。 要获得特定于模式的验证、代码补全、快速文档和其他操作,请切换到 自定义编译器定义 模式。
打开 .yaml 配置,点击 IDE 底部状态栏上的模式切换器,并选择 自定义编译器定义:

