我们的项目使用STM32 GCC ARM工具链,使用STM32 CMake工具链文件(gcc-arm-none-eabi.cmake)将
CMAKE_C_COMPILER_ID
和CMAKE_CXX_COMPILER_ID
设置为GNU
。
当遇到这样的行时
target_compile_features(my_lib PUBLIC cxx_std_11)
它会抱怨......
target_compile_features no known features for CXX compiler
"GNU"
version 11.3.1.
我第一次注意到这一点是在尝试使用他们的 CMake 文件引入 Boost 时,这些文件使用相同的
target_compile_feature
检查。
CMake 项目确实针对 Linux GCC 进行配置。我的CMake版本是3.30.2.
CMAKE_C_COMPILER_FORCED
和
CMAKE_CXX_COMPILER_FORCED
设置为 TRUE(完全删除这些选项)修复了上述错误。我不确定我们的项目是否添加了这些选项,或者它们是否来自 STM32 CubeMX 生成的文件。这些选项在 CMake 文档中被列为已弃用。