2、环境搭建:在 Windows/Linux/macOS 上安装 CMake,验证安装,第一个 Hello World 项目

2.1 为什么我要先聊环境搭建?

说实话,很多初学者一上来就急着写 CMakeLists.txt,结果编译报错半天,最后发现是 CMake 没装对。我当年就吃过这个亏——在 Windows 上折腾了俩小时,才发现 PATH 环境变量没配好。

所以这一章,咱们先把地基打牢。你想想看,如果连 cmake --version 都跑不通,后面再花哨的语法都是白搭。

2.2 各平台安装方式

2.2.1 Windows 安装

Windows 上安装 CMake 其实最省心。我个人习惯直接去官网下载安装包:

  1. 访问 https://cmake.org/download/
  2. 找到 Windows x64 Installer,下载 .msi 文件
  3. 双击安装,关键一步来了——记得勾选「Add CMake to the system PATH for all users」
⚠️ 我曾经踩过的坑: 如果忘了勾选 PATH,后面每次用 cmake 都得输完整路径。虽然可以手动加环境变量,但何必给自己找麻烦呢?

安装完成后,打开命令提示符(cmd)或 PowerShell,输入:

cmake --version

如果看到类似 cmake version 3.28.1 的输出,恭喜你,成了。

2.2.2 Linux 安装

Linux 上安装 CMake 就一句话的事。不过不同发行版命令略有区别:

发行版 命令
Ubuntu/Debian sudo apt install cmake
CentOS/RHEL sudo yum install cmake
Fedora sudo dnf install cmake
Arch Linux sudo pacman -S cmake

但这里有个问题——系统自带的 CMake 版本往往比较老。比如 Ubuntu 20.04 默认装的是 3.16 版,而有些新特性需要 3.20+。怎么办?

我建议用 Kitware 官方 APT 仓库:

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.2.3 macOS 安装

macOS 用户就幸福了。我个人最推荐用 Homebrew:

brew install cmake

一行命令搞定。如果你没有 Homebrew,也可以去官网下载 .dmg 安装包,或者用 MacPorts:

sudo port install cmake

验证方式一样:

cmake --version

2.3 验证安装:不止是看版本号

很多人验证安装就只跑个 cmake --version,觉得够了。其实不然。我建议你再做两件事:

  1. 检查生成器是否可用:cmake --help 会列出所有支持的生成器。Windows 上应该有 Visual Studio 17 2022、Ninja 等;Linux/macOS 上应该有 Unix Makefiles。
  2. 测试一个最小项目:这才是真正的「验证安装」。光有 cmake 命令,但编译链配不上,等于白装。
💡 小技巧: 如果你在 Windows 上同时装了 Visual Studio 和 MinGW,可以用 cmake -G "MinGW Makefiles" 指定生成器。我经常在同一个项目里切换生成器来测试兼容性。

2.4 第一个 Hello World 项目

好了,环境搭好了,咱们来写第一个 CMake 项目。说白了,就是让 CMake 帮我们编译一个打印 "Hello World" 的 C++ 程序。

2.4.1 项目结构

创建一个文件夹,比如叫 hello_cmake,里面放两个文件:

hello_cmake/
├── CMakeLists.txt
└── main.cpp

2.4.2 编写源代码

main.cpp 内容很简单:

#include <iostream>

int main() {
    std::cout << "Hello World from CMake!" << std::endl;
    return 0;
}

2.4.3 编写 CMakeLists.txt

这是核心。咱们先写一个最简版本:

cmake_minimum_required(VERSION 3.10)
project(HelloWorld)
add_executable(hello main.cpp)

解释一下这三行:

  • cmake_minimum_required:指定最低 CMake 版本。我习惯写 3.10,因为大部分旧系统都支持。
  • project:定义项目名称。这里叫 HelloWorld。
  • add_executable:告诉 CMake 要生成一个可执行文件,名字叫 hello,源文件是 main.cpp。
🔑 关键点: CMakeLists.txt 的文件名必须完全一致,大小写敏感。我见过有人写成 cmakelists.txt,结果 CMake 根本认不出来。

2.4.4 构建与运行

在项目根目录下执行:

mkdir build
cd build
cmake ..
cmake --build .

为什么要有 build 目录?这叫「外部构建」。你想想看,如果所有临时文件都混在源码目录里,那得多乱。我早期项目就是直接在源码目录里跑 cmake,结果 .o 文件和 .cpp 文件混在一起,想删都分不清。

构建成功后,运行:

  • Linux/macOS:./hello
  • Windows:.\Release\hello.exe 或 .\Debug\hello.exe(取决于构建配置)

你应该会看到:

Hello World from CMake!

2.5 内联流程图:CMake 构建流程

为了让你更直观地理解整个过程,我画了个简单的流程图:

编写 CMakeLists.txt cmake .. (配置) 生成构建文件 cmake --build . (构建) 生成可执行文件 运行 ./hello

2.6 常见问题与避坑

我整理了几个新手最容易碰到的问题:

问题 原因 解决方案
CMake Error: CMake was unable to find a build program 没有安装编译器(如 g++、Visual Studio) 安装对应编译器,或指定生成器 -G "Unix Makefiles"
CMake Error: The source directory does not appear to contain CMakeLists.txt 路径写错了,或者文件名大小写不对 检查当前目录和文件名
Windows 上 cmake .. 报错找不到编译器 没有打开 Visual Studio 开发者命令提示符 用「Developer Command Prompt for VS 2022」运行
⚠️ 我曾经踩过的坑: 在 Windows 上直接用普通 cmd 运行 cmake,结果它死活找不到 Visual Studio。后来才发现,必须用 VS 自带的「开发者命令提示符」才行。或者你也可以在 cmake 命令后加 -G "Visual Studio 17 2022" 显式指定。

2.7 小结

这一章咱们干了三件事:

  • 在三大主流系统上装好了 CMake
  • 验证了安装是否真的可用
  • 跑通了第一个 Hello World 项目

你想想看,从零到能跑出 "Hello World",其实就几步。但这一步迈出去,后面的路就好走了。下一章咱们会深入 CMakeLists.txt 的语法,到时候你会发现——原来 CMake 还能这么玩。

💡 课后练习: 试着修改 main.cpp,输出你的名字。然后重新构建运行,看看效果。这能帮你巩固「修改源码 → 重新构建 → 运行」这个基本循环。