cmake config_error ai_generated true

CMake 错误:CMakeLists.txt 中的 CMake 错误:未知的 CMake 命令 "cmake_policy"。

CMake Error: CMake Error in CMakeLists.txt: Unknown CMake command "cmake_policy".

ID: cmake/missing-cmake-policies-package

其他格式: JSON · Markdown 中文 · English
87%修复率
82%置信度
1证据数
2024-01-10首次发现

版本兼容性

版本状态引入弃用备注
CMake 2.8 active
CMake 3.5 active
CMake 3.20 active

根因分析

cmake_policy 命令使用不正确(例如拼写错误、大小写错误或在 cmake_minimum_required 之前调用),或者 CMake 版本太旧不支持它。

English

The cmake_policy command is used incorrectly (e.g., misspelled, wrong case, or called before cmake_minimum_required) or CMake version is too old to support it.

generic

官方文档

https://cmake.org/cmake/help/latest/command/cmake_policy.html

解决方案

  1. 确保 cmake_minimum_required(VERSION 3.0) 放在任何 cmake_policy 调用之前。示例:cmake_minimum_required(VERSION 3.0) 然后 cmake_policy(SET CMP0000 NEW)。
  2. 检查拼写错误:使用 cmake_policy(小写,下划线),而不是 cmakepolicy 或 CMakePolicy。正确语法:cmake_policy(VERSION 3.0)。
  3. 如果使用旧版 CMake,升级到至少 3.0,或使用条件代码:if(CMAKE_VERSION VERSION_GREATER 2.6) cmake_policy(...) endif()。

无效尝试

常见但无效的做法:

  1. 90% 失败

    cmake_policy was introduced in CMake 2.6; if cmake_minimum_required is set to a lower version, the command may be unrecognized.

  2. 100% 失败

    cmake_policy is a built-in command, not a variable; using set() with it creates a variable that does nothing.