现已推出!阅读 10 月份的新功能和修复。

在 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 预设(推荐)
  • 使用 CMake 工具包/变体

使用 CMake 预设进行配置

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

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

如果您的项目包含CMakePresets.json文件,则可以使用配置和构建预设来指定如何在您的机器上构建项目。

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

CMake Side Panel with presets

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

CMake Select presets

使用 CMake 工具包进行配置

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

要扫描工具包

  1. 打开命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))并运行**CMake:选择工具包**。扩展将自动扫描您的计算机上的工具包,并创建您系统上找到的编译器的列表。

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

    Select the kit

    您之前选择的工具包现在将显示在 CMake Tools 视图中的**项目状态**部分中。

    Selected kit in Sidebar

要更改工具包,您可以选择 CMake Tools 视图中**项目状态**部分中的工具包,或者再次从命令面板运行**CMake:选择工具包**命令。如果您没有看到您要查找的编译器,则可以编辑项目中的cmake-tools-kits.json文件。要编辑文件,请打开命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))并运行**CMake:编辑用户本地 CMake 工具包**命令。

然后,您需要选择一个变体。

一个变体包含有关如何构建项目的说明。默认情况下,CMake Tools 扩展提供四个变体,每个变体对应一个默认的构建类型:DebugReleaseMinRelSizeRelWithDebInfo。这些选项执行以下操作

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

要选择变体,请打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并运行 **CMake: 选择变体** 命令。

Select variant

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

Select debug variant type

所选变体将显示在状态栏中,位于活动工具包旁边。

CMake: 配置

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

构建 hello world

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

Build

您可以从命令面板中选择 **CMake: 设置构建目标** 来选择要构建的目标。默认情况下,CMake Tools 会构建所有目标。所选目标将显示在 CMake Tools 侧边栏的 **项目状态** 视图中的 **构建** 节点下方,也可以从那里设置。

Build Target

调试 hello world

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

Debug

继续执行,请按 F5

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

后续步骤