概述
CMake 基于定义项目构建过程的 CMakeLists.txt 文件,为用户选择的构建工具(例如 Make、Ninja)生成相应的构建脚本。这对于标准化和自动化复杂项目的构建过程至关重要。
主要特点
- 跨平台支持(Linux、Windows、macOS 等)
- 生成多种构建系统(Makefiles、Visual Studio、Xcode 等)
- 易于模块化项目管理
- 支持测试和打包(CTest、CPack)
主要选项
运行 CMake 命令时常用的主要选项。
基本设置
构建系统生成器
构建和安装
信息
生成的命令:
请尝试组合命令。
描述:
`cmake` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
使用 CMake 设置和构建项目的各种场景。
基本构建设置和 Makefile 生成
mkdir build
cd build
cmake ..
make
基于当前目录的源文件,在 'build' 子目录中生成 Makefile。
显式指定源和构建目录
cmake -S /path/to/my_project_source -B /path/to/my_project_build
明确指定源目录和构建目录来生成构建文件。
使用 Ninja 生成器和 Release 构建
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
使用 Ninja 构建系统,并将构建类型设置为 Release 来生成构建文件。
通过 CMake 执行构建
cmake --build build
通过 CMake 命令执行构建,而不是直接调用生成的构建系统(如 Makefile)。
安装构建的项目
cmake --install build
将构建的项目安装到系统的默认路径(例如 /usr/local)。
安装
CMake 在大多数 Linux 发行版中默认不提供,需要通过包管理器安装。
Debian/Ubuntu
sudo apt update
sudo apt install cmake
使用 APT 包管理器安装 CMake。
Fedora/RHEL/CentOS
sudo dnf install cmake
使用 DNF 或 YUM 包管理器安装 CMake。
Arch Linux
sudo pacman -S cmake
使用 Pacman 包管理器安装 CMake。
技巧与注意事项
有效使用 CMake 的技巧和注意事项。
分离式构建 (Out-of-Source Build)
建议始终使用分离式构建,即将源文件目录和构建目录分开。这可以保持源目录的整洁,并方便切换不同的构建配置。
- 防止源目录被污染
- 方便同时管理多种构建配置(Debug/Release)
CMakeLists.txt 文件
CMake 的核心是定义项目构建规则的 CMakeLists.txt 文件。理解该文件的语法和结构非常重要。
- 位于项目的根目录
- 也可以存在于子目录中(通过 add_subdirectory 命令包含)
使用 GUI 工具
对于复杂的 CMake 项目,可以使用 `ccmake`(终端模式)或 `cmake-gui`(图形模式)等工具来可视化地设置和管理缓存变量。
- `ccmake`: 在终端中交互式设置缓存变量
- `cmake-gui`: 通过图形界面方便地进行设置