资讯动态

CMake 3.26.6 Windows x86_64 安装与配置实战指南

发布时间:2026/9/25 1:51:11 来源:尧图企业网站定制
简介本资源为 CMake 3.26.6 官方 Windows 64 位命令行工具完整安装包面向 C/C 开发者、跨平台项目构建工程师及初学者用于替代 Visual Studio 内置构建系统或配合 Ninja/MSVC 等后端生成构建脚本解决多平台项目配置、依赖管理与自动化编译难题。压缩包共含 2000 个文件主体为 1194 个文本格式的配置说明、环境变量设置指南与命令参数详解辅以 806 个 HTML 格式的官方文档页面涵盖 cmake.1、ctest.1、cmake-presets.7、cmake-file-api.7 等核心模块全面覆盖构建流程、变量定义、生成器表达式、预设配置等关键能力包体大小为 39.99MB。已有 297 人下载学习资源结构高度还原官方文档组织逻辑可直接解压即用无需联网访问在线手册特别适合离线开发、CI 环境部署及系统化学习 CMake 构建体系。1. CMake 3.26.6 Windows x86_64 安装包不是“下载即用”的绿色解压包而是开箱即用的完整构建环境枢纽你刚在官网或镜像站点下载了cmake-3.26.6-windows-x86_64.zip双击解压后看到一堆.html文件cmake.1.html、ctest.1.html、cmake-buildsystem.7.html……第一反应可能是“这哪是安装包连个cmake.exe都没看见”——别急这不是打包失误而是 CMake 官方自 3.20 起推行的「免安装分发模式」这个 ZIP 包本质是一个预编译、静态链接、开箱即用的 Windows 原生二进制发行版cmake.exe就藏在bin/目录下而所有 HTML 文档是离线帮助系统genindex.html是总索引页无需联网、不依赖 Visual Studio 运行时、不写注册表、不改 PATH——它就是你本地构建流水线里那个最稳的“指挥官”。适合正在为嵌入式项目交叉编译、为 Qt 5/6 项目配置多工具链、或在 CI/CD 中需要确定性构建行为的 Windows 工程师。如果你还在手动编译 CMake 源码、或从 Chocolatey 安装后被版本冲突折磨这个包就是你的后悔药。2. 解压即用定位二进制、验证签名、注入 PATH 的三步落地法2.1 解压后目录结构与关键文件定位下载完成的cmake-3.26.6-windows-x86_64.zip解压后典型结构如下路径以C:\tools\cmake-3.26.6为例cmake-3.26.6/ ├── bin/ │ ├── cmake.exe ← 主程序x86_64 架构静态链接 MSVCRT │ ├── cpack.exe │ ├── ctest.exe │ └── cmake-gui.exe ← 图形界面需 GUI 环境 ├── doc/ │ └── cmake/ ← 所有 HTML 文档根目录含你看到的 genindex.html 等 ├── share/ │ ├── cmake-3.26/ ← 模块库FindXXX.cmake、CMakePackageConfigHelpers.cmake 等 │ └── licenses/ ← MIT 许可证文本 └── LICENSE提示cmake.exe不在根目录也不在doc/下——它严格位于bin/子目录。这是官方约定避免与文档混淆。若解压后bin/为空请立即校验 ZIP 完整性SHA256 值见官网发布页而非重试解压。2.2 验证二进制完整性用 Windows 自带工具校验 SHA256CMake 官方在 https://cmake.org/download/ 页面提供每个版本的 SHA256 校验值。Windows 10/11 用户无需额外工具直接用 PowerShell# 进入 ZIP 所在目录假设文件名为 cmake-3.26.6-windows-x86_64.zip Get-FileHash .\cmake-3.26.6-windows-x86_64.zip -Algorithm SHA256 | Format-List输出类似Algorithm : SHA256 Hash : 8A3F2D1E9B7C4F6A0D5E8B1C3F7A9D2E5B6C8A0F1D2E3F4A5B6C7D8E9F0A1B2C Path : C:\Downloads\cmake-3.26.6-windows-x86_64.zip将Hash值与官网公布的 SHA256 对比。不匹配则绝对不可用——常见于断点续传失败、HTTP 代理缓存污染、或镜像站同步延迟如清华源偶尔滞后 1–2 小时。此时应换源推荐 https://mirrors.tuna.tsinghua.edu.cn/cmake/ 或直连官网。2.3 注入系统 PATH两种方式按场景选方式一临时会话级推荐用于 CI/CD 或单次调试在 PowerShell 或 CMD 中执行以C:\tools\cmake-3.26.6为解压路径# PowerShell 临时生效当前窗口有效 $env:PATH C:\tools\cmake-3.26.6\bin; $env:PATH cmake --version # 应输出 3.26.6:: CMD 临时生效 set PATHC:\tools\cmake-3.26.6\bin;%PATH% cmake --version方式二永久用户级开发机日常使用不要改系统 PATH易引发 VS 工具链冲突改当前用户的环境变量WinR →sysdm.cpl→ “高级”选项卡 → “环境变量”在“用户变量”区域找到Path→ “编辑” → “新建” → 输入C:\tools\cmake-3.26.6\bin重启所有已打开的终端窗口CMD/PowerShell/VS Code 终端否则 PATH 不刷新参数说明cmake.exe是静态链接的不依赖vcruntime140.dll等运行时。但若你在旧版 Windows 7 上运行失败报错MSVCP140.dll 丢失说明该系统缺少 Visual C 2015–2022 运行时——请单独安装 Microsoft Visual C Redistributable for Visual Studio 2022 这是唯一外部依赖。3. 配置工程从空目录到生成 Visual Studio 解决方案的完整链路3.1 最小可行 CMakeLists.txt三行启动一个 Win32 控制台项目新建目录hello-cmake/创建CMakeLists.txt# CMakeLists.txt cmake_minimum_required(VERSION 3.26.6) # 显式锁定版本防 CI 环境漂移 project(hello LANGUAGES CXX) # 声明项目名和语言CXX 启用 C 标准 add_executable(hello main.cpp) # 声明可执行文件自动关联同名源文件再创建main.cpp#include iostream int main() { std::cout Hello from CMake 3.26.6 on Windows x86_64!\n; return 0; }3.2 命令行生成 Visual Studio 2022 解决方案打开 PowerShell进入hello-cmake/目录# 创建构建目录强烈建议分离源码与构建产物 mkdir build cd build # 生成 Visual Studio 2022 解决方案x64 平台 cmake -G Visual Studio 17 2022 -A x64 .. # 编译等效于在 VS 中按 CtrlShiftB cmake --build . --config Release # 运行结果 .\Release\hello.exe # 输出Hello from CMake 3.26.6 on Windows x86_64!逻辑说明-G参数指定生成器GeneratorVisual Studio 17 2022是 CMake 内置名称对应 VS2022-A x64指定目标架构非Win64后者是旧版别名..是源码目录路径。CMake 会自动探测 VS2022 安装路径通过注册表无需手动指定VCINSTALLDIR。3.3 使用 Ninja 生成器提速CI 场景下的事实标准Ninja 比 MSBuild 快 3–5 倍且输出更干净。先确保已安装 Ninja https://github.com/ninja-build/ninja/releases 并加入 PATH# 清空旧构建目录 rm -r build; mkdir build; cd build # 生成 Ninja 构建文件 cmake -G Ninja -DCMAKE_BUILD_TYPERelease .. # 构建无 --config 参数Ninja 无配置概念 cmake --build . # 运行 .\hello.exe参数说明-DCMAKE_BUILD_TYPERelease是 Ninja 的必需参数MSVC 生成器可省略cmake --build .在 Ninja 下等价于ninja命令但更跨平台。若报错ninja: command not found说明 Ninja 未在 PATH 中——检查where ninja是否返回路径。4. 避坑指南Windows 下 CMake 3.26.6 的五个血泪经验4.1 现象CMake Error at C:/Qt/Qt5.9.4/5.9.4/msvc2017_64/lib/cmake/Qt5/Qt5Config.cmake:xx原因Qt 官方预编译库的Qt5Config.cmake依赖旧版 CMake 的find_package()行为而 3.26.6 默认启用CMP0149策略要求find_package(Qt5 REQUIRED)必须显式声明REQUIRED。Qt5.9.4 的 Config 文件未适配此策略。解决在CMakeLists.txt顶部添加策略禁用仅对 Qt5 兼容cmake_minimum_required(VERSION 3.26.6) cmake_policy(SET CMP0149 NEW) # 或 SET CMP0149 OLD 临时降级 find_package(Qt5 REQUIRED COMPONENTS Core Widgets)4.2 现象CMake Error at /usr/share/cmake-4.2/modules/CMakeDetermineCompilerId.cmake:9Windows 下出现/usr/share路径原因你误用了 Linux/macOS 的 CMake 预设文件CMakePresets.json其中cacheVariables或environment字段硬编码了 Unix 路径或 VS Code 的 CMake Tools 插件缓存了跨平台 preset。解决删除项目根目录下的CMakeUserPresets.json和build/目录在 Windows 上只用 Windows-native preset// CMakeUserPresets.jsonWindows 专用 { version: 3, configurePresets: [{ name: win-vs2022-x64, displayName: VS 2022 x64, generator: Visual Studio 17 2022, architecture: x64, binaryDir: ${sourceDir}/build }] }4.3 现象Could NOT find OpenSSL (missing: OPENSSL_CRYPTO_LIBRARY)即使已安装 OpenSSL for Windows原因CMake 3.26.6 默认搜索OpenSSL_ROOT_DIR环境变量但多数 Windows OpenSSL 安装包如 Shining Light不设置此变量且find_package(OpenSSL)不再默认扫描注册表。解决两种方式任选其一方式一推荐设置环境变量后重新运行 CMake$env:OPENSSL_ROOT_DIRC:\OpenSSL-Win64 cmake -G Ninja ..方式二在CMakeLists.txt中显式指定路径set(OPENSSL_ROOT_DIR C:/OpenSSL-Win64 CACHE PATH OpenSSL install root) find_package(OpenSSL REQUIRED)4.4 现象CMake Warning at CMakeLists.txt:5 (project): VERSION argument is empty原因project()命令中VERSION字段缺失而 CMake 3.26.6 对project()的语义检查更严格尤其在启用了CMAKE_POLICY_DEFAULT_CMP0135时。解决显式声明版本号即使为0.0.0project(mylib VERSION 0.0.0 LANGUAGES CXX) # 或更规范地 project(mylib VERSION 1.0.0 DESCRIPTION My awesome library HOMEPAGE_URL https://example.com)4.5 现象The system cannot find the path specified.CMD 中执行cmake报错原因PATH 中存在中文路径、空格路径、或cmake.exe上级目录名含特殊字符如,(,)CMD 解析失败。PowerShell 无此问题。解决将 CMake 安装路径改为纯英文、无空格如C:\tools\cmake-3.26.6在 CMD 中用引号包裹命令C:\tools\cmake-3.26.6\bin\cmake.exe --version终极方案弃用 CMD统一用 PowerShell 或 Windows Terminal —— 这是 Windows 开发的事实标准。5. 进阶技巧用 CMake Presets 管理多平台构建与 CI 可复现性5.1 为什么需要 Presets告别cmake -G ... -D...的命令行泥潭当你同时维护 WindowsVS2022、LinuxNinja、macOSXcode三个平台的构建每次切换都要记忆不同参数组合Windowscmake -G Visual Studio 17 2022 -A x64 -DCMAKE_TOOLCHAIN_FILE...Linuxcmake -G Ninja -DCMAKE_BUILD_TYPERelWithDebInfo -DCMAKE_INSTALL_PREFIX/opt/myappmacOScmake -G Xcode -DCMAKE_OSX_DEPLOYMENT_TARGET12.0Preset 将这些固化为 JSON 配置实现一键切换、团队共享、CI 复用。5.2 创建跨平台CMakeUserPresets.json在项目根目录创建CMakeUserPresets.json注意不是CMakePresets.json后者由项目维护者提供UserPresets供开发者覆盖{ version: 3, configurePresets: [ { name: win-vs2022-x64-release, displayName: Windows VS2022 x64 Release, description: Build with Visual Studio 2022, x64, Release config, generator: Visual Studio 17 2022, architecture: x64, binaryDir: ${sourceDir}/build/win-vs2022-x64-release, cacheVariables: { CMAKE_BUILD_TYPE: Release } }, { name: win-ninja-debug, displayName: Windows Ninja Debug, description: Fast debug build with Ninja, generator: Ninja, binaryDir: ${sourceDir}/build/win-ninja-debug, cacheVariables: { CMAKE_BUILD_TYPE: Debug, CMAKE_EXPORT_COMPILE_COMMANDS: ON } } ], buildPresets: [ { name: win-vs2022-x64-release-build, configurePreset: win-vs2022-x64-release, configuration: Release } ] }5.3 在 VS Code 中无缝集成CMake Tools 插件安装 CMake Tools 插件打开项目文件夹插件自动检测CMakeUserPresets.json按CtrlShiftP→ “CMake: Select a Configure Preset” → 选择win-vs2022-x64-release按CtrlShiftP→ “CMake: Configure” → 自动生成构建文件按CtrlShiftP→ “CMake: Build” → 自动调用cmake --build验证方法构建成功后检查build/win-vs2022-x64-release/目录下是否生成ALL_BUILD.vcxproj和ZERO_CHECK.vcxproj运行cmake --build . --config Release --target INSTALL应静默完成安装若定义了install()命令。5.4 CI/CD 中复现本地构建GitHub Actions 示例在.github/workflows/ci.yml中复用 presetjobs: build-win: runs-on: windows-latest steps: - uses: actions/checkoutv4 - name: Setup CMake uses: jwlawson/actions-setup-cmakev1 with: cmake-version: 3.26.6 - name: Configure (Preset) run: cmake --preset win-vs2022-x64-release - name: Build run: cmake --build --preset win-vs2022-x64-release-build - name: Test run: ctest --preset win-vs2022-x64-release-test关键点--preset参数直接读取CMakeUserPresets.json无需硬编码-G或-D保证 CI 与本地构建 100% 一致。若 CI 报错Unknown preset检查 JSON 文件名是否拼错必须是CMakeUserPresets.json大小写敏感且文件在仓库根目录。从那以后我每次新建 C 项目都强制走一遍cmake --preset流程——不是为了炫技而是因为 preset 文件本身成了项目契约它明确定义了“这个项目在什么环境下能构建成功”比 README 里的文字描述可靠十倍。当新同事 clone 代码后只需cmake --preset win-ninja-debug cmake --build --preset win-ninja-debug-build两行命令就能跑通整个构建链而不是在 Slack 里问“你装了啥版本的 Qt”。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑