提要

在STM32CubeMX更新到6.15.0版本后,增加了Starm-clang的选择项,但当使用CLion打开GCC项目后会出现如下所示报错,同时CMake构建失败。

The C compiler

    "D:/{path}/arm-none-eabi-gcc.exe"

  is not able to compile a simple test program.

发生原因

观察文件结构,在cmake文件夹下,新增了 starm-clang.cmake 文件,该文件同gcc-arm-none-eabi.cmake 一样,定义了CMake工具链及其编译/配置选项,但在CubeMX 6.15.0版本,生成的CmakeLists.txt同时不包含两者,致使CMake构建失败。

在最新版本的CubeMX下,两者的选定由CMakePresets.json指定

解决方案

在CmakeLists.txt中的project() 行前引用对应编译工具链的cmake文件,如

include(cmake/gcc-arm-none-eabi.cmake)

include(cmake/starm-clang.cmake)