在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++ 扩展

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

    CMake工具扩展

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

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

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

确保已安装CMake

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

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

cmake --version

要安装CMake,或者如果您至少没有版本3.27,请参阅Kitware APT Repository上适用于您平台的说明。安装版本3.27或更高版本。

确保已安装开发工具

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

在本教程中,我们将使用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 Tools视图中的ConfigureBuild节点下的项目状态中查看预设的活动配置。您可以随时选择这些节点来设置或更改您的配置和构建预设。

CMake侧边栏预设

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

CMake 选择预设

使用CMake Kits进行配置

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

扫描套件:

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

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

    选择工具包

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

    侧边栏中选中的工具包

要更改工具包,您可以在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命令。

选择变体

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

选择调试变体类型

选定的变体将出现在状态栏中,紧邻活动工具包。

CMake: 配置

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

构建你好世界

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

构建

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

构建目标

调试你好世界

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

调试

继续并按 F5 继续。

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

下一步