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

- **ID:** `cmake/missing-cmake-policies-package`
- **领域:** cmake
- **类别:** config_error
- **验证级别:** ai_generated
- **修复率:** 87%

## 根因

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

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| CMake 2.8 | active | — | — |
| CMake 3.5 | active | — | — |
| CMake 3.20 | active | — | — |

## 解决方案

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()。
   ```

## 无效尝试

- **** — cmake_policy was introduced in CMake 2.6; if cmake_minimum_required is set to a lower version, the command may be unrecognized. (90% 失败率)
- **** — cmake_policy is a built-in command, not a variable; using set() with it creates a variable that does nothing. (100% 失败率)
