2、环境搭建:CMake的安装与构建工具链配置

说实话,很多初学者一上来就急着写CMakeLists.txt,结果编译报错半天找不到原因——最后发现是CMake版本不对,或者构建工具没装全。嗯,这坑我踩过不止一次。

这一章,咱们就把环境彻底搞定。Windows、Linux、macOS,一个都不能少。我会把每个平台的安装细节、构建工具链的选择、IDE的集成方式,全都掰开揉碎了讲清楚。

CMake 环境搭建知识体系 CMake 安装 Windows 安装包 / Chocolatey / scoop Visual Studio + Ninja Linux apt / yum / dnf / 源码编译 GCC / Clang + Make / Ninja macOS Homebrew / 官方dmg Xcode + Ninja IDE 集成:VS Code / CLion

2.1 Windows 平台:别用老掉牙的版本

Windows 上装 CMake,我个人最推荐的方式是直接去 cmake.org/download 下载安装包。选那个 cmake-3.xx.x-windows-x86_64.msi,双击一路 Next 就行。

但有个关键点——安装时记得勾选 "Add CMake to the system PATH for all users"。我见过太多同事装完发现命令行敲不了 cmake,又得手动加环境变量,何必呢?

💡 我的小技巧: 如果你喜欢用包管理器,可以试试 choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'。或者用 scoop:scoop install cmake。scoop 默认就加到 PATH 里了,省心。

装完验证一下,打开 PowerShell 或 CMD:

cmake --version

能看到版本号,就说明搞定了。

2.2 Linux 平台:包管理器最省事

Linux 上装 CMake,说白了就是一行命令的事。但要注意——不同发行版的包名和版本可能不一样。

发行版 命令 备注
Ubuntu / Debian sudo apt install cmake 版本可能偏旧,建议加 Kitware 官方源
CentOS / RHEL sudo yum install cmake EPEL 源里也有
Fedora sudo dnf install cmake 版本通常较新
Arch Linux sudo pacman -S cmake 滚动更新,版本很新
⚠️ 我曾经踩过的坑: 有次在 Ubuntu 18.04 上直接 apt install cmake,装了个 3.10 的版本。结果项目里用了 target_precompile_headers,这个功能需要 CMake 3.11+。折腾了半天才发现是版本问题。所以我的建议是——尽量用 CMake 3.20 以上版本,很多新特性用起来很爽。

如果你需要最新版,可以加 Kitware 的官方源。以 Ubuntu 为例:

wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo apt-key add -
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main'
sudo apt update
sudo apt install cmake

或者,你也可以从源码编译。我个人不太推荐这种方式,除非你要定制某些特性。编译一次少说十几分钟,何必呢?

2.3 macOS 平台:Homebrew 是首选

macOS 上装 CMake,我建议直接用 Homebrew:

brew install cmake

装完同样验证一下:

cmake --version

如果你不想用 Homebrew,也可以去官网下载 .dmg 安装包。但说实话,Homebrew 管理起来更方便,升级也简单:brew upgrade cmake

💡 注意: macOS 自带的 make 是 BSD 版本的,和 GNU Make 有些差异。我建议你装个 GNU Make:brew install make。或者直接用 Ninja,后面会讲到。

2.4 构建工具链:Make 还是 Ninja?

CMake 本身不编译代码,它只是个"项目经理"。真正干活的是构建工具——Make 或 Ninja。

你想想看,Make 是经典方案,几乎所有系统都支持。但 Ninja 更快,尤其适合大型项目。我个人的经验是:

  • 小项目(几十个源文件):Make 完全够用,不用折腾
  • 中大型项目(几百上千个源文件):Ninja 能快 2-3 倍,尤其是增量编译
  • 跨平台项目:Ninja 在 Windows/Linux/macOS 上表现一致,推荐

安装 Ninja 也很简单:

  • Windowschoco install ninjascoop install ninja
  • Linuxsudo apt install ninja-build
  • macOSbrew install ninja

用 CMake 生成 Ninja 构建文件:

cmake -G "Ninja" -B build

然后编译:

cmake --build build

就这么简单。

2.5 IDE 集成:VS Code 与 CLion

好,环境装好了,工具链也配好了。接下来咱们看看怎么在 IDE 里用 CMake。

VS Code:轻量级的选择

VS Code 本身不直接支持 CMake,但装上扩展就完美了。我推荐装这两个:

  • CMake Tools(作者:Microsoft)——核心扩展,提供 CMake 配置、编译、调试的一键操作
  • CMake(作者:twxs)——提供语法高亮和代码补全

装完之后,打开一个包含 CMakeLists.txt 的文件夹,VS Code 会自动检测并提示你配置。你只需要按 Ctrl+Shift+P,输入 CMake: Configure,就能生成构建文件了。

💡 我的习惯: 在 VS Code 的设置里,把 cmake.configureOnOpen 设为 true。这样每次打开项目,CMake 会自动配置,省得手动点。

CLion:开箱即用

CLion 是 JetBrains 家的 IDE,对 CMake 的支持可以说是"原生"的。你只要打开项目,CLion 会自动识别 CMakeLists.txt,然后调用 CMake 进行配置。

CLion 默认使用 Ninja 作为构建工具,这点我很喜欢。你可以在 Settings | Build, Execution, Deployment | CMake 里看到默认的生成器就是 Ninja。

如果你需要切换编译器或构建类型,直接在 CMake 配置里加参数就行:

-DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc

📌 核心要点回顾:

  • CMake 安装:Windows 用安装包,Linux 用包管理器,macOS 用 Homebrew
  • 版本选择:尽量用 3.20+,避免踩旧版本的坑
  • 构建工具:小项目用 Make,大项目用 Ninja
  • IDE 集成:VS Code 装 CMake Tools,CLion 开箱即用

环境搭好了,接下来就可以真正开始写 CMakeLists.txt 了。别急,下一章咱们从最简单的单文件项目开始,一步步深入。


公众号:蓝海资料掘金营,微信deep3321