CMake 3.29.5中使用cmake_print_properties命令提示未知命令错误的原因?
解决
cmake_print_properties命令找不到的问题 核心问题是cmake_print_properties并非CMake的内置命令,它属于PrintProperties模块,必须先导入该模块才能使用。
修改后的CMakeLists.txt示例
在调用cmake_print_properties之前添加include(PrintProperties)语句:
cmake_minimum_required(VERSION 3.20) project( TEST_PROJECT VERSION 0.1 DESCRIPTION "TEST PROJECT" LANGUAGES C CXX ) # 导入PrintProperties模块,才能使用cmake_print_properties命令 include(PrintProperties) cmake_print_properties( TARGETS TEST_PROJECT PROPERTIES LINK_LANGUAGES # 注意:LANGUAGES不是目标属性,LINK_LANGUAGES才是对应目标的链接语言属性 )
额外说明
- 你的CMake版本3.29.5完全满足要求:
PrintProperties模块从CMake 3.14版本开始引入,无需升级版本。 - 注意目标属性的正确性:你原本写的
LANGUAGES不是CMake目标属性,若要查看目标关联的编程语言,可使用LINK_LANGUAGES或SOURCE_FILES等有效属性,避免后续出现属性不存在的警告。
内容的提问来源于stack exchange,提问作者Gabriel Lira
相关产品推荐
相关产品推荐

