现已推出!阅读关于 11 月的新功能和修复。

在 Linux 上开始使用 CMake 工具

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++ 扩展。通过在 扩展 视图中搜索“c++”来安装 C/C++ 扩展 (⇧⌘X(Windows,Linux Ctrl+Shift+X))。

    C/C++ extension

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

    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 项目中的步骤操作。

如果你的现有 CMake 项目的根目录中已经有一个 CMakeLists.txt 文件,请继续配置 Hello World以配置你的项目。

配置 Hello World

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

  • 使用 CMake 预设(推荐)
  • 使用 CMake 工具包/变体

使用 CMake 预设进行配置

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

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

如果你的项目有一个 CMakePresets.json 文件,你可以使用“配置”和“构建”预设来指定如何在你的计算机上构建项目。

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

CMake Side Panel with presets

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

CMake Select presets

使用 CMake 工具包进行配置

如果你的项目没有 CMakePresets.json 文件,则你需要使用工具包。工具包表示工具链,它是用于构建项目的编译器、链接器和其他工具。

扫描工具包

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

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

    Select the kit

    你先前选择的工具包现在会显示在 CMake 工具视图中的“项目状态”部分。

    Selected kit in Sidebar

要更改工具包,你可以选择 CMake 工具视图中“项目状态”部分中的工具包,或者从命令面板再次运行 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 命令。

Select variant

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

Select debug variant type

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

CMake: 配置

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

构建 Hello World

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

Build

您可以通过从命令面板中选择 CMake: Set Build Target 来选择您要构建的目标。默认情况下,CMake Tools 会构建所有目标。所选目标将显示在 CMake Tools 侧边栏的 Project Status 视图中,位于 Build 节点下方,也可以从那里进行设置。

Build Target

调试 Hello World

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

Debug

继续按 F5 继续执行。

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

后续步骤