CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project
时间: 2025-07-25 20:28:26 AIGC 浏览: 26
在处理 CMake 构建系统时,如果遇到 **`Compatibility with CMake < 3.5 will be removed from a future version of CMake`** 这类弃用警告,说明项目中使用的 `CMakeLists.txt` 文件仍保留了对旧版本 CMake 的兼容性支持。为了避免未来版本的不兼容问题并消除警告,可以更新 `cmake_minimum_required(VERSION)` 声明。
### 更新 `CMakeLists.txt` 中的 `VERSION` 参数
1. 在 `CMakeLists.txt` 文件中找到如下语句:
```cmake
cmake_minimum_required(VERSION 3.5)
```
2. 如果当前项目已确认无需兼容低于某版本的 CMake(例如 3.10),可以将该行改为:
```cmake
cmake_minimum_required(VERSION 3.10)
```
这样做的效果是明确指定项目所需的最低 CMake 版本[^3]。
3. 若项目已经适配更高版本的 CMake 政策,并且不再需要向后兼容,可以使用范围语法来声明版本要求:
```cmake
cmake_minimum_required(VERSION 3.10...3.14)
```
此处表示项目要求 CMake 至少为 3.10 版本,但已经测试过与 3.14 兼容。这种写法允许构建系统在特定版本范围内保持兼容性[^2]。
---
### 升级 CMake 到最新版本
为了确保构建环境能够支持最新的 CMake 功能和特性,建议升级 CMake 到较高版本(如 3.13 或以上)。以下是升级步骤:
1. **卸载现有 CMake:**
```bash
sudo apt remove cmake cmake-data
```
2. **下载新版本 CMake:**
可从 [CMake 官网](https://cmake.org/download/) 下载适用于 Linux 的 `.sh` 安装脚本,例如:
```bash
wget https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7-Linux-x86_64.sh
```
3. **安装 CMake:**
将下载的脚本移动到 `/opt` 目录并执行安装命令:
```bash
sudo mv cmake-3.27.7-Linux-x86_64.sh /opt/
cd /opt
sudo chmod +x cmake-3.27.7-Linux-x86_64.sh
sudo ./cmake-3.27.7-Linux-x86_64.sh
```
4. **创建符号链接:**
```bash
sudo ln -s /opt/cmake-3.27.7-Linux-x86_64/bin/* /usr/local/bin
```
5. **设置环境变量:**
编辑 `~/.bashrc` 文件,添加以下内容:
```bash
export CMAKE_ROOT="/opt/cmake-3.27.7-Linux-x86_64/share/cmake-3.27"
```
6. **验证安装:**
```bash
source ~/.bashrc
cmake --version
ccmake --version
```
如果输出显示正确的版本号,则表示升级成功[^5]。
---
### 注意事项
- 在更新 `cmake_minimum_required` 之前,确保项目的构建脚本和依赖库均已适配新版 CMake。
- 使用 `...` 语法时,应确保项目不会因政策变更而出现意外行为。
- 若构建过程中出现其他错误(如找不到某些包配置文件),请检查是否缺少必要的模块路径或开发包[^4]。
---
阅读全文
相关推荐

