必须勾选“add cmake to the system path”,否则命令行无法识别cmake;安装后需新开终端验证cmake --version,path未生效或路径错误会导致‘cmake’ not recognized错误。

Windows上用.msi安装包装CMake,PATH必须勾选
不勾选“Add CMake to the system PATH”就等于白装——后续所有 cmake --version 或 cmake -S . -B build 都会报 'cmake' is not recognized as an internal or external command。
- 安装时在“Add CMake to the system PATH”选项里,选 Add CMake to the system PATH for current user(普通用户权限足够)或 for all users(需管理员权限)
- 装完必须新开一个 PowerShell / CMD 窗口,旧窗口不会自动加载新 PATH
- 验证命令不是
cmake -version(少一个短横),而是cmake --version(两个短横) - 如果仍报错,手动检查 PATH 里是否真含了
C:\Program Files\CMake\bin或你自定义的安装路径下的bin目录
Linux用apt/yum/brew装CMake,版本常偏低
Ubuntu/Debian 的 sudo apt install cmake、CentOS/RHEL 的 sudo yum install cmake、macOS 的 brew install cmake 虽快,但默认装的是系统仓库维护的稳定版,比如 Ubuntu 22.04 装的是 3.22.x,而当前最新稳定版已是 3.31.x。
- 老版本可能不支持
cmake -S . -B build这种现代写法,会提示Unknown option -S - 若项目
CMakeLists.txt用了cmake_minimum_required(VERSION 3.25),系统自带版本直接报错退出 - 解决方法:Ubuntu 可加官方PPA(
sudo apt-add-repository ppa:george-edison55/cmake-3.x),或直接下.sh二进制包手动安装 - macOS 用户遇到
command not found: cmake却已运行brew install cmake,大概率是 Homebrew 的 bin 目录没进 shell 的 PATH(检查echo $PATH是否含/opt/homebrew/bin或/usr/local/bin)
Windows用ZIP免安装版,PATH要自己加
下载 cmake-x.y.z-windows-x86_64.zip 解压后没有安装过程,bin 目录里有 cmake.exe,但不配置 PATH 就没法在任意目录调用。
- 解压路径别含中文或空格,比如
F:\cmake\bin安全,F:\我的工具\cmake\bin会导致某些构建脚本失败 - 手动加 PATH:右键“此电脑”→属性→高级系统设置→环境变量→系统变量→Path→编辑→新建→填入你解压后的
bin目录完整路径 - PowerShell 中用
$env:Path += ";F:\cmake\bin"是临时生效,关窗口即失效,不能替代系统级配置 - 验证时仍用
cmake --version,不是cmake -v或cmake version
cmake --build build 报错找不到构建工具
cmake --build build 不是万能钥匙——它只负责调用底层构建器(Make/Ninja/MSBuild),但不会帮你装 Make 或 Ninja。
- Linux/macOS 默认找
make,没装会报Build tool not found: make;可先sudo apt install build-essential(Ubuntu)或brew install make(macOS) - 想用 Ninja(更快更现代),得先装 Ninja:
sudo apt install ninja-build(Ubuntu)、brew install ninja(macOS)、choco install ninja(Windows) - Windows 上若生成的是 Visual Studio 工程(
cmake -G "Visual Studio 17 2022"),cmake --build build实际调用 MSBuild,此时需确保已安装对应版本的Build Tools for Visual Studio或完整 VS - 显式指定构建器更稳妥:
cmake --build build --use-stderr --verbose加--verbose能看到具体哪步卡住
CMakeLists.txt 和生成构建文件。PATH 配错、底层工具缺失、版本不匹配,这三类问题占实际报错的九成以上。











