在 VS Code 中试试

Linux 上 CMake Tools 入门

CMake 是一个开源的跨平台工具,它使用与编译器和平台无关的配置文件来生成特定于您的编译器和平台的本机构建工具文件。

CMake Tools 扩展集成了 Visual Studio Code 和 CMake,让您可以轻松配置、构建和调试 C++ 项目。

在本教程中,您将使用 Visual Studio Code 的 CMake Tools 扩展在 Linux 上配置、构建和调试简单的 C++ CMake 项目。除了安装 CMake、您的编译器、调试器和构建工具之外,本教程中的步骤通常也适用于您在其他平台(如 Windows)上使用 CMake 的方式。

如果您遇到任何问题,请在VS Code 文档仓库中为此教程提交一个问题。此外,有关 CMake Tools 的更多信息,请参阅Visual Studio Code 的 CMake Tools 文档

先决条件

要在 Ubuntu 上完成本教程,请安装以下内容

  1. Visual Studio Code.

  2. VS Code 的 C++ 扩展。通过在扩展视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X)) 中搜索 'c++' 来安装 C/C++ 扩展。

    C/C++ extension

  3. VS Code 的 CMake Tools 扩展。通过在扩展视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X)) 中搜索 'CMake tools' 来安装 CMake Tools 扩展。

    CMake tools extension

  4. 您还需要安装 CMake、编译器、调试器和构建工具。

视频:什么是构建系统?如何将 CMake 添加到您的项目?

观看此视频了解构建系统何时能帮助您以及如何为项目设置 CMake,或按照以下章节中的步骤操作。

确保 CMake 已安装

VS Code CMake Tools 扩展通过使用您系统上安装的 CMake 来工作。为了获得最佳结果,请使用 CMake 3.27 或更高版本。

查看您的系统上是否已安装 CMake。打开终端窗口并输入以下命令

cmake --version

要安装 CMake,或者如果您没有至少 3.27 版本,请参阅您平台在 Kitware APT 仓库中的说明。安装 3.27 或更高版本。

确保开发工具已安装

尽管您将使用 VS Code 编辑源代码,但您将使用系统上安装的编译器、调试器和构建工具(例如 make)来编译和调试源代码。

对于本教程在 Ubuntu 上,我们将使用 GCC 编译器、GDB 进行调试以及 make 构建项目。这些工具默认情况下未在 Ubuntu 上安装,因此您需要安装它们。幸运的是,这很容易。

检查 GCC 是否已安装

要查看您的系统上是否已安装 GCC,请打开终端窗口并输入以下命令

gcc -v

如果未安装 GCC,请从终端窗口运行以下命令更新 Ubuntu 软件包列表。过时的 Linux 发行版可能会干扰获取最新软件包。

sudo apt-get update

接下来,使用此命令安装 GNU 编译器、make 和 GDB 调试器

sudo apt-get install build-essential gdb

创建 CMake 项目

如果您没有现有的 CMake 项目,请按照创建 CMake 项目中的步骤操作。

如果您已经有一个在根目录中包含 CMakeLists.txt 文件的现有 CMake 项目,请继续进行配置 Hello World 来配置您的项目。

配置 Hello World

在使用 CMake Tools 扩展构建项目之前,您需要对其进行配置,以便它了解系统上的编译器。在 VS Code 中配置 CMake 有两种方式

  • 使用 CMake Presets (推荐)
  • 使用 CMake Kits/Variants

使用 CMake Presets 进行配置

我们建议使用 CMake Presets 来管理您的 CMake 配置。CMake Presets 使您能够指定一个通用的 JSON 文件,您可以在其中存储项目的所有配置。然后,您可以在不同的 IDE 和不同的操作系统之间与他人共享此文件。

如果您按照创建 CMake 项目中的步骤创建了项目,则您的项目已配置为使用 CMake Presets。

如果您的项目有 CMakePresets.json 文件,您可以使用 Configure 和 Build 预设来指定如何在您的机器上构建项目。

您可以在 CMake Tools 视图的 Project Status(项目状态)中的 Configure(配置)和 Build(构建)节点下查看活动的预设配置。您可以随时选择这些节点来设置或更改您的 Configure 和 Build 预设。

CMake Side Panel with presets

您还可以通过在命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中运行 CMake: Select Configure Preset(CMake: 选择配置预设)或 CMake: Select Build Preset(CMake: 选择构建预设)命令来设置任何预设。

CMake Select presets

使用 CMake Kits 进行配置

如果您的项目没有 CMakePresets.json 文件,您需要使用 kits。Kit 代表一个工具链,即用于构建项目的编译器、链接器和其他工具。

扫描 kits

  1. 打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并运行 CMake: Select a Kit(CMake: 选择一个 Kit)。扩展会自动扫描您计算机上的 kits 并创建系统上找到的编译器列表。

  2. 选择您要使用的编译器。例如,根据您安装的编译器,您可能会看到类似以下内容

    Select the kit

    您之前选择的 kit 现在显示在 CMake Tools 视图的 Project Status(项目状态)部分。

    Selected kit in Sidebar

要更改 kit,您可以在 CMake Tools 视图的 Project Status(项目状态)部分中选择 kit,或从命令面板再次运行 CMake: Select a Kit(CMake: 选择一个 Kit)命令。如果您没有看到您正在寻找的编译器,可以编辑项目中的 cmake-tools-kits.json 文件。要编辑该文件,打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+X)) 并运行 CMake: Edit User-Local CMake Kits(CMake: 编辑用户本地 CMake Kits)命令。

然后,您需要选择一个 variant。

Variant 包含如何构建项目的指令。默认情况下,CMake Tools 扩展提供了四种 variant,每种对应于一种默认构建类型:DebugReleaseMinRelSizeRelWithDebInfo。这些选项的作用如下

Debug:禁用优化并包含调试信息。Release:包含优化但不包含调试信息。MinRelSize:针对大小进行优化。不包含调试信息。RelWithDebInfo:针对速度进行优化并包含调试信息。

要选择一个 variant,打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 运行 CMake: Select Variant(CMake: 选择 Variant)命令。

Select variant

选择 Debug 以在构建中包含调试信息。

Select debug variant type

选定的 variant 将显示在状态栏中活动 kit 旁边。

CMake: 配置

现在您已通过预设或 kits/variants 选择配置设置,打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并运行 CMake: Configure(CMake: 配置)命令来配置您的项目。这将使用您选择的配置在项目的构建文件夹中生成构建文件。

构建 Hello World

配置项目后,就可以构建了。打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并运行 CMake: Build(CMake: 构建)命令,或从状态栏中选择 Build(构建)按钮。

Build

您可以通过从命令面板中选择 CMake: Set Build Target(CMake: 设置构建目标)来选择要构建哪些目标。默认情况下,CMake Tools 构建所有目标。选定的目标将出现在 CMake Tools 侧边栏 Build(构建)节点下方的 Project Status(项目状态)视图中,也可以从那里设置。

Build Target

调试 Hello World

要运行和调试项目,打开 main.cpp 并在 std::cout 行设置断点。然后打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并运行 CMake: Debug(CMake: 调试)。调试器将在 std::cout 行停止

Debug

继续按 F5 继续。

您现在已使用 VS Code CMake Tools 扩展在 Ubuntu 上使用 CMake 构建和调试 C++ 应用。其他平台的步骤是相同的;区别在于如何在您选择的平台上安装 CMake 和编译器/调试器。有关在其他平台上设置编译器/调试器的说明,请参阅以下内容

后续步骤