CMake for C++: 完整指南与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

CMake 简介:它是什么以及为什么需要它



CMake(跨平台构建系统)是一个强大的开源跨平台软件自动化构建系统。与传统的 Makefile 不同,CMake 不直接构建项目,而是基于简单的配置文件 CMakeLists.txt 为本机工具(Make、Ninja、Visual Studio、Xcode)生成构建文件。



为什么需要 CMake?

  • 跨平台性: 同一份代码无需修改配置即可在 Windows、Linux 和 macOS 上构建。
  • 依赖管理: 内置支持查找和链接外部库(Boost、OpenCV、Qt 等)。
  • 灵活性: 支持多种项目生成器(Visual Studio、Xcode、Ninja、Unix Makefiles)。
  • 模块化: 能够创建库(静态和动态)、可执行文件和测试。
  • IDE 集成: 现代 IDE(CLion、VS Code、Qt Creator)内置了对 CMake 的支持。


CMake 已成为 C++ 项目的事实标准。像 Google(TensorFlow、Chrome)、Microsoft(VS Code)、KDE、LLVM/Clang 等巨头都在使用它。



安装 CMake



与 Python 库不同,CMake 不能通过 pip 安装。它是一个独立的应用程序。下面介绍主要操作系统的安装方法:



Windows

  1. 从 官方网站 下载安装程序(选择 Windows 版本 — .msi 或 .zip)。
  2. 运行安装程序。务必勾选 "Add CMake to the system PATH for all users" 选项。
  3. 安装后,在命令行中验证:cmake --version。


Linux (Ubuntu/Debian)

sudo apt updatesudo apt install cmakecmake --version


macOS (Homebrew)

brew install cmakecmake --version


验证安装

安装后,在终端中执行:

cmake --version# 输出应类似于:# cmake version 3.27.0


快速入门:第一个 CMake 项目



让我们创建一个简单的 "Hello World" 项目,使用 CMake 构建。



项目结构

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


main.cpp 文件

#include <iostream>

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


CMakeLists.txt 文件

cmake_minimum_required(VERSION 3.10)project(HelloWorld VERSION 1.0 LANGUAGES CXX)

add_executable(hello main.cpp)


构建项目

mkdir buildcd buildcmake ..cmake --build ../hello


说明:

  • cmake_minimum_required — 设置 CMake 的最低版本。
  • project — 定义项目名称和语言(CXX 代表 C++)。
  • add_executable — 从源文件创建可执行文件。


CMake 的主要方法和函数



1. cmake_minimum_required()

描述: 设置构建项目所需的最低 CMake 版本。如果 CMake 版本低于指定版本,将报错。

参数:

  • VERSION — 版本号,格式为 major.minor[.patch[.tweak]]
  • FATAL_ERROR — 可选,版本不匹配时触发致命错误

示例:

cmake_minimum_required(VERSION 3.16 FATAL_ERROR)


2. project()

描述: 定义项目名称及其参数。必须

推荐