> 其他外部软件包 > cmake

cmake: 跨平台构建系统生成器

CMake 是一个用于生成与操作系统和编译器无关的构建系统的工具。它主要用于 C、C++ 项目,可以生成 Makefile、Visual Studio 项目、Xcode 项目等各种构建文件。这使得开发人员可以在不依赖特定 IDE 或构建工具的情况下管理和构建项目。

概述

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`: 通过图形界面方便地进行设置

相同类别命令