cmake
config_error
ai_generated
true
CMake Error: Version range constraint 3.20...3.25 is not satisfied by installed CMake version 3.18.4.
ID: cmake/version-range-constraint-unsatisfied
90%Fix Rate
85%Confidence
1Evidence
2024-02-15First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| cmake_minimum_required(VERSION 3.20...3.25) | active | — | — | — |
| CMake 3.18.4 | active | — | — | — |
| CMake 3.20.0 | active | — | — | — |
Root Cause
The project's CMakeLists.txt specifies a version range (e.g., cmake_minimum_required(VERSION 3.20...3.25)) which requires CMake >=3.20 and <4.0, but the installed CMake is older than the lower bound.
generic中文
项目的 CMakeLists.txt 指定了一个版本范围(例如 cmake_minimum_required(VERSION 3.20...3.25)),要求 CMake >=3.20 且 <4.0,但已安装的 CMake 版本低于下限。
Official Documentation
https://cmake.org/cmake/help/latest/command/cmake_minimum_required.htmlWorkarounds
-
90% success Download and install CMake 3.20 or newer from https://cmake.org/download/. For Linux: wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.tar.gz && tar -xzf cmake-3.20.0-linux-x86_64.tar.gz && sudo mv cmake-3.20.0-linux-x86_64 /opt/cmake-3.20 && sudo ln -sf /opt/cmake-3.20/bin/cmake /usr/local/bin/cmake
Download and install CMake 3.20 or newer from https://cmake.org/download/. For Linux: wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.tar.gz && tar -xzf cmake-3.20.0-linux-x86_64.tar.gz && sudo mv cmake-3.20.0-linux-x86_64 /opt/cmake-3.20 && sudo ln -sf /opt/cmake-3.20/bin/cmake /usr/local/bin/cmake
-
85% success Use pip to install a newer CMake: pip install cmake==3.20.0 and ensure it's first in PATH.
Use pip to install a newer CMake: pip install cmake==3.20.0 and ensure it's first in PATH.
-
75% success Modify CMakeLists.txt to use a single version lower bound: cmake_minimum_required(VERSION 3.18). Only do this if you verify the project doesn't use features from 3.20+.
Modify CMakeLists.txt to use a single version lower bound: cmake_minimum_required(VERSION 3.18). Only do this if you verify the project doesn't use features from 3.20+.
中文步骤
从 https://cmake.org/download/ 下载并安装 CMake 3.20 或更高版本。对于 Linux:wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.tar.gz && tar -xzf cmake-3.20.0-linux-x86_64.tar.gz && sudo mv cmake-3.20.0-linux-x86_64 /opt/cmake-3.20 && sudo ln -sf /opt/cmake-3.20/bin/cmake /usr/local/bin/cmake
使用 pip 安装更新的 CMake:pip install cmake==3.20.0 并确保其在 PATH 中优先。
修改 CMakeLists.txt 使用单一版本下限:cmake_minimum_required(VERSION 3.18)。仅在确认项目不使用 3.20+ 特性时执行此操作。
Dead Ends
Common approaches that don't work:
-
Set CMAKE_MINIMUM_REQUIRED to a lower version like 3.18
70% fail
This bypasses the version check but may break build if project uses features from 3.20+.
-
Reinstall CMake from distro package manager (e.g., apt install cmake)
60% fail
Distro repositories often have outdated versions; apt may install 3.18 even if you ask for newer.
-
Use --version flag to check and then manually symlink to a newer version
90% fail
Symlinks don't resolve version constraints; cmake_minimum_required reads the actual binary version.