文章目录
- 一、前言
- [二、环境准备与 WSL 安装](#二、环境准备与 WSL 安装)
- [三、安装 C++ 开发工具链](#三、安装 C++ 开发工具链)
- [四、VS Code 的安装与配置](#四、VS Code 的安装与配置)
- [五、创建并配置 C++ 项目](#五、创建并配置 C++ 项目)
-
- 5.1、配置编译任务:tasks.json
- 5.2、配置调试任务:launch.json
- [5.3、运行和调试 C++ 程序](#5.3、运行和调试 C++ 程序)
- [5.4、关于 c_cpp_properties.json](#5.4、关于 c_cpp_properties.json)
- 六、CMake和多文件管理
-
- [6.1、CMake 项目集成](#6.1、CMake 项目集成)
- 6.2、多文件项目管理
- 七、结语
一、前言
VSCode,一款轻量级但功能强大的代码编辑器,启动速度快、界面高度可定制、扩展丰富,支持多种编程语言。
WSL,全称 Windows Subsystem for Linux, 是微软推出的一项革命性的技术,可以在 Windows 系统上直接运行原生的 GNU/Linux 环境,不用搭建虚拟机。直接在 Windows 上体验到接近原生的 Linux 性能,和使用 Linux 的各种开发工具链。WSL 2 更是通过轻量级虚拟机技术,进一步提升性能和兼容性。
VS Code 与 WSL 结合,完美解决在 Windows 上进行 Linux C++ 开发。不用为 Windows C++ 配置复杂的工具链,也不用担心 Windows 和 Linux 环境下的编译差异。WSL 提供一个稳定、高效、与 Linux 环境高度一致的编译和运行环境,而 VS Code 则提供优异的代码编辑和调试,两者通过 Remote - WSL 扩展无缝连接,既有了原生的 Linux 开发工作站,又能享受 Windows 系统的便捷。

希望在 Windows 上获得类似 Linux 开发体验的开发者,特别是那些需要使用 GCC/G++、GDB 或 CMake 等 Linux 原生工具链的开发者,一定不要错过。在这里提供一个完整的在 Windows 上配置 vscode 的c++环境,适用现在大多数的 Windows 系统,包括Window 11。
二、环境准备与 WSL 安装
WSL 是在 Windows 上运行 Linux 环境的基础。
要安装 WSL ,系统版本必须是Windows 10 版本 2004 及更高版本 (Build 19041 或更高版本) ,或者 Windows 11。
查看 Windows 版本和内部版本号:按下 Win + R 键,输入 winver 并回车。

推荐安装 WSL 2, 在WSL基础上提供更优秀的性能和完整的系统调用兼容性。不过,WSL 2 要启用"虚拟机平台"功能才行。
WSL 默认是不启动的,要开启,先在 "开始" 菜单搜索 "启用或关闭 Windows 功能"。在打开的窗口中,找到并勾选"适用于 Linux 的 Windows 子系统"和"虚拟机平台"这两个选项。系统会安装所需的组件,这是安装 WSL 的关键。

然后以管理员身份运行 PowerShell 或 cmd,输入如下命令:
PowerShell
wsl --install
自动启用所需的 WSL 功能,并安装默认的 Linux 发行版(最新版本的 Ubuntu LTS)。
如果想安装指定的Linux发行版,可以用-d参数:
bash
wsl --install -d Ubuntu-22.04
安装完成后,Ubuntu 会自动启动,首次要创建新的 UNIX 用户名和密码。这个用户名和密码是 Ubuntu 环境中使用的,不需要和 Windows 用户名相同。

安装完 Ubuntu 后,在搜索栏可以找到Ubuntu:

开启 Ubuntu 第一件要做的事情就是更新其软件包列表并升级已安装的软件包。
bash
sudo apt update
sudo apt upgrade
输出:
bash
~$ sudo apt update
[sudo] password for fly:
Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:2 http://security.ubuntu.com/ubuntu noble-security/main amd64 Components [21.6 kB]
Get:3 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [878 kB]
Get:4 http://security.ubuntu.com/ubuntu noble-security/universe Translation-en [194 kB]
Get:5 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Components [52.2 kB]
Get:6 http://security.ubuntu.com/ubuntu noble-security/universe amd64 c-n-f Metadata [17.0 kB]
Get:7 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B]
Get:8 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [18.5 kB]
Get:9 http://security.ubuntu.com/ubuntu noble-security/multiverse Translation-en [4288 B]
Get:10 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [212 B]
Get:11 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 c-n-f Metadata [380 B]
Hit:12 http://archive.ubuntu.com/ubuntu noble InRelease
Get:13 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:14 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:15 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [15.0 MB]
Get:16 http://archive.ubuntu.com/ubuntu noble/universe Translation-en [5982 kB]
Get:17 http://archive.ubuntu.com/ubuntu noble/universe amd64 Components [3871 kB]
Get:18 http://archive.ubuntu.com/ubuntu noble/universe amd64 c-n-f Metadata [301 kB]
Get:19 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [269 kB]
Get:20 http://archive.ubuntu.com/ubuntu noble/multiverse Translation-en [118 kB]
Get:21 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Components [35.0 kB]
Get:22 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 c-n-f Metadata [8328 B]
Get:23 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1313 kB]
Get:24 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [164 kB]
Get:25 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1120 kB]
Get:26 http://archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [287 kB]
Get:27 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [377 kB]
Get:28 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 c-n-f Metadata [26.0 kB]
Get:29 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:30 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [33.2 kB]
Get:31 http://archive.ubuntu.com/ubuntu noble-updates/multiverse Translation-en [6772 B]
Get:32 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:33 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 c-n-f Metadata [592 B]
Get:34 http://archive.ubuntu.com/ubuntu noble-backports/main amd64 Packages [39.9 kB]
Get:35 http://archive.ubuntu.com/ubuntu noble-backports/main Translation-en [9152 B]
Get:36 http://archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7084 B]
Get:37 http://archive.ubuntu.com/ubuntu noble-backports/main amd64 c-n-f Metadata [272 B]
Get:38 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [28.9 kB]
Get:39 http://archive.ubuntu.com/ubuntu noble-backports/universe Translation-en [17.4 kB]
Get:40 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [30.8 kB]
Get:41 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 c-n-f Metadata [1304 B]
Get:42 http://archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [216 B]
Get:43 http://archive.ubuntu.com/ubuntu noble-backports/restricted amd64 c-n-f Metadata [116 B]
Get:44 http://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:45 http://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 c-n-f Metadata [116 B]
Fetched 30.7 MB in 1min 55s (267 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
~$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
现在就准备好了 Linux 开发环境。
三、安装 C++ 开发工具链
可以装 C++ 开发所需的核心工具了。这些工具包括编译器 (GCC/G++)、调试器 (GDB)、构建工具 (Make) 以及项目生成器 (CMake),还有 Git 项目管理。
build-essential 是一个元软件包,包含了编译 C/C++ 程序所需的基本工具,其中就有 GCC/G++ 编译器、Make 工具以及其他一些常用的开发库和头文件。
安装 build-essential:
bash
sudo apt install build-essential
安装完成后,验证 GCC/G++ 和 Make 是否安装成功:
bash
gcc --version
g++ --version
make --version
如果命令能够正确返回版本信息,则说明安装成功。
bash
fly@LAPTOP-V34UPA81:~$ gcc --version
gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
fly@LAPTOP-V34UPA81:~$ g++ --version
g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
fly@LAPTOP-V34UPA81:~$ make --version
GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
GDB (GNU Debugger) 是 Linux 环境下功能强大的调试器,可以在 VS Code 中对 C++ 程序进行断点调试、单步执行等操作。
安装 GDB:
bash
sudo apt install gdb
安装完成后,验证 GDB 是否安装成功:
bash
gdb --version
如果能看到 GDB 的版本信息,则表示安装成功。
bash
~$ gdb --version
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
CMake 是一个跨平台的开源构建系统生成工具。独立于编译器的配置文件来生成标准构建文件,对于大型或跨平台的 C++ 项目来说,CMake 几乎是不可或缺的。
安装 CMake:
bash
sudo apt install cmake
安装完成后,验证 CMake 是否安装成功:
bash
cmake --version
如果能看到 CMake 的版本信息,则表示安装成功。
四、VS Code 的安装与配置
已经有了运行 C++ 代码所需的基础环境。接下来该安装 VS Code,并配置连接到 WSL 环境。
VS Code 官方网站:https://code.visualstudio.com/ 根据操作系统(Windows)下载对应的安装包。

安装过程就不赘述了,Windows安装软件还是比较简单的。
安装好vscode,在Ubuntu的一个目录下输出code .就可以让 vscode 连接到 WSL 环境。

进入这样的界面:

现在,安装一些强大的扩展工具帮助写代码。
- C/C++ 扩展
- CMake Tools

Remote - WSL 扩展是 VS Code 官方提供的扩展,直接在 WSL 环境中打开文件夹,并使用 WSL 中的工具链进行编译、运行和调试。这是实现 VS Code 与 WSL 无缝连接的关键。
至此,已经完成 VS Code 的安装和基本配置,并和 WSL 环境成功连接。可以在 VS Code:
- 编辑 C++ 代码。
- 使用 WSL 中的 GCC/G++ 编译器编译代码。
- 使用 GDB 调试器调试代码。
- 使用 CMake 构建项目。
五、创建并配置 C++ 项目
VS Code 创建第一个 C++ 项目,配置编译和调试任务,让代码顺利运行起来。
首先在 WSL 环境中创建一个新的文件夹来存放 C++ 项目文件,这里先编写一个简单的"Hello World"程序。
bash
mkdir ~/my_first_cpp_project
cd ~/my_first_cpp_project
创建 main.cpp 文件并编写代码:
cpp
#include <iostream>
int main(int argc, char** argv)
{
std::cout << "Hello from WSL C++ in VS Code!" << std::endl;
int a = 1, b = 2;
int c = a + b;
std::cout << c << std::endl;
return 0;
}

5.1、配置编译任务:tasks.json
tasks.json文件定义了 VS Code 如何执行外部工具来编译代码。配置任务完成一键编译C++ 程序。
快捷键 Ctrl + Shift + P 打开命令面板。输入 Tasks: Configure Default Build Task 并选择。

对于 C++ 项目,选择 C/C++: g++ 生成活动文件。

在项目根目录下会自动创建一个 .vscode 文件夹,并生成一个 tasks.json 文件。

我比较推荐用 CMake 管理多文件项目。如果不使用 CMake,而是手动管理 tasks.json,就要修改 args 字段来包含所有源文件,并指定头文件的搜索路径。
json
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build all files",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"src/main.cpp", // 明确列出所有源文件
"src/my_function.cpp", // 明确列出所有源文件
"-I", // 添加头文件搜索路径
"include/", // 指向 include 目录
"-o",
"${workspaceFolder}/bin/my_program" // 将可执行文件输出到 bin 目录
],
"options": {
"cwd": "${workspaceFolder}" // 工作目录设置为项目根目录
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Build all C++ files in the project."
}
]
}
对于任何超过几个源文件的项目,还是要使用 Make 或 CMake 来管理编译过程,手动修改tasks.json太麻烦了。
重要参数:
version: 任务配置文件的版本。tasks: 包含所有任务定义的数组。type: 任务类型,cppbuild表示这是一个 C++ 构建任务。label: 任务在 VS Code 界面中显示的名称。command: 要执行的命令。这里是/usr/bin/g++,这是 WSL Ubuntu 中 g++ 编译器的默认路径。args: 传递给g++命令的参数:-fdiagnostics-color=always: 使诊断信息带颜色。-g: 生成调试信息,这对于后续的调试非常重要。${file}: VS Code 预定义变量,表示当前打开的文件。-o: 指定输出文件的名称。${fileDirname}/${fileBasenameNoExtension}: VS Code 预定义变量,表示当前文件所在的目录,以及不带扩展名的文件名。
options.cwd: 命令执行时的工作目录,这里设置为当前文件所在的目录。problemMatcher: 用于解析编译器输出中的错误和警告,并在 VS Code 中显示。$gcc用在 GCC/G++ 的输出。group.kind: 任务组的类型,build表示这是一个构建任务。group.isDefault: 设置为true表示这是默认的构建任务,可以通过快捷键Ctrl + Shift + B直接运行。
5.2、配置调试任务:launch.json
launch.json文件定义了 VS Code 如何启动程序进行调试。告诉调试器在哪里找到可执行文件。
创建 launch.json 文件:

选择 C++ (GDB/LLDB),VS Code 会在 .vscode 文件夹中生成一个 launch.json 文件。

生成的 launch.json 包含多个配置。找到名为 "C/C++: g++ build and debug active file" 的配置(或者类似的,如果没有 preLaunchTask,就要手动添加)。
json
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++: (g++) Launch", // 任务名称,可以自定义
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}", // 指定要调试的可执行文件路径
"args": [],
"stopAtEntry": false, // 是否在程序入口处停止
"cwd": "${fileDirname}", // 程序运行的工作目录
"environment": [],
"externalConsole": false, // 是否使用外部终端运行程序
"MIMode": "gdb", // 使用 GDB 调试器
"miDebuggerPath": "/usr/bin/gdb", // GDB 调试器路径
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ build active file" // 在调试前执行的构建任务
}
]
}
重要参数:
name: 调试配置在下拉菜单中显示的名称。type: 调试器类型,cppdbg表示 C++ 调试。request: 调试请求类型,launch表示启动程序进行调试。program: 最重要的一项 。指定要调试的可执行文件的完整路径。这里使用了${fileDirname}/${fileBasenameNoExtension},它会指向与当前main.cpp同目录下、同名的可执行文件(例如~/my_first_cpp_project/main)。args: 传递给程序的命令行参数。stopAtEntry: 如果设置为true,调试器会在程序入口点(通常是main函数的开始)暂停。cwd: 程序运行时的工作目录。externalConsole: 如果设置为true,程序会在一个新的外部终端窗口中运行;如果设置为false,则在 VS Code 的内置终端中运行。对于简单的控制台应用,false更方便。MIMode: 调试接口模式,gdb表示使用 GDB。miDebuggerPath: GDB 调试器的路径,通常是/usr/bin/gdb。setupCommands: 调试器启动时执行的命令,例如启用 GDB 的 pretty-printing 功能,让复杂数据结构显示更友好。preLaunchTask: 非常重要 。指定在调试会话开始前要运行的任务。这里我们设置为"C/C++: g++ build active file",这会确保在每次调试前,你的代码都会被重新编译,保证调试的是最新版本。这个名称必须与tasks.json中label的值完全匹配。
5.3、运行和调试 C++ 程序
在main.cpp文件点击代码行号左侧的空白区域设置断点。会出现一个红点,程序运行到此处时会暂停。
点击左侧"运行和调试"视图顶部的绿色"启动调试"按钮(或按下快捷键 F5)。

VS Code 会首先执行 preLaunchTask 中定义的编译任务。然后启动调试器,并在设置的断点处暂停。此时,可以看到左侧的"变量"、"监视"、"调用堆栈"等面板显示了当前程序的调试信息。

这里就可以使用调试控制条进行操作:
- 继续 (F5)。
- 单步跳过 (F10)。
- 单步调试 (F11)。
- 单步跳出 (Shift + F11)。
- 停止 (Shift + F5)。
VS Code 的"终端"面板中看到输出:

5.4、关于 c_cpp_properties.json
除了 tasks.json 和 launch.json,VS Code 的 C/C++ 扩展还会生成c_cpp_properties.json 文件,用来配置智能感知功能。这个文件会自动配置好,识别编译器和头文件路径,不需要手动修改。只是,项目使用了特殊的库或头文件,就要在这里添加相应的 includePath。
快捷键 Ctrl + Shift + P,输入 C/C++: Edit Configurations (UI) 或 C/C++: Edit Configurations (JSON) 来查看和修改c_cpp_properties.json。
c_cpp_properties.json主要控制代码补全、错误波浪线、定义跳转等功能。在 WSL 环境下,C/C++ 扩展会自动检测 WSL 中的 GCC/G++ 路径和系统头文件路径,不用手动修改。如果项目使用了特殊的库或头文件,才要在这里添加相应的 includePath。
至此,已经成功在 VS Code 中创建了一个 C++ 项目,并配置了编译和调试任务。
六、CMake和多文件管理
6.1、CMake 项目集成
对于大型或跨平台的 C++ 项目,手动维护 tasks.json 来编译所有源文件会非常繁琐。有 CMake 这个强大的构建系统生成工具就不一样了,可以用简洁的 CMakeLists.txt 文件来定义项目的构建方式,然后生成适用于各种平台和工具的构建脚本。VS Code 的 CMake Tools 扩展提供了对 CMake 的一流支持。
为什么使用 CMake?
- 跨平台: 一份
CMakeLists.txt可以生成 Linux (Makefile)、Windows (Visual Studio)、macOS (Xcode) 等平台的构建文件。 - 自动化处理源文件依赖、库链接、头文件搜索路径等复杂问题。
- 模块化管理大型项目中的多个子项目和外部依赖。
- 很多大型 C++ 项目和库都使用 CMake 进行构建。
创建一个简单的 CMake 项目
项目结构:
bash
my_cmake_project/
├── src/
│ └── main.cpp
└── CMakeLists.txt
main.cpp 内容和前面的一样。
CMakeLists.txt 内容:
bash
cmake_minimum_required(VERSION 3.10) # 最低CMake版本要求
project(MyCMakeProject CXX) # 项目名称和语言
# 添加可执行文件
add_executable(my_app src/main.cpp) # 创建一个名为 my_app 的可执行文件,源文件为 src/main.cpp
VS Code 打开一个包含 CMakeLists.txt 的文件夹时,CMake Tools 扩展会自动检测到它。
- VS Code 底部状态栏会出现 CMake 相关的按钮。点击状态栏中的 "No Kit Selected"(或类似字样),然后选择 WSL 中的 GCC/G++ 工具链(
GCC for Linux或Clang for Linux)。 - 状态栏会显示 "Debug" 或 "Release"。可以点击它来切换构建类型(。
- 点击状态栏中的"Build"按钮(一个锤子图标),或者使用命令面板(
Ctrl + Shift + P)输入CMake: Build。CMake Tools 会自动在项目根目录下创建一个build目录,并生成 Makefile。然后会调用make命令来编译项目。 - 构建成功后,状态栏会显示可执行文件的名称。点击旁边的"Run"按钮(一个播放图标),或者
Ctrl + Shift + P->CMake: Run。程序就会在 VS Code 的集成终端中运行。
CMake Tools 扩展会自动生成一个 launch.json 配置,可以直接调试 CMake 构建的可执行文件。
- 在
main.cpp文件的源代码设置断点。 - 点击左侧"运行和调试"图标(
Ctrl + Shift + D)。 - 在顶部的下拉菜单中,选择由 CMake Tools 生成的调试配置。
- 点击绿色的"启动调试"按钮(或
F5)。 CMake Tools会自动处理构建和启动调试器。
6.2、多文件项目管理
项目包含多个源文件(.cpp)和头文件(.h)时,要调整编译任务。
一个常见的 C++ 项目结构:
bash
my_multi_file_project/
├── src/
│ ├── main.cpp
│ └── my_function.cpp
├── include/
│ └── my_function.h
└── .vscode/
├── tasks.json
└── launch.json
my_function.h:
cpp
#ifndef MY_FUNCTION_H
#define MY_FUNCTION_H
void print_message();
#endif // MY_FUNCTION_H
my_function.cpp:
cpp
#include "my_function.h"
#include <iostream>
void print_message() {
std::cout << "This is a message from a separate file!" << std::endl;
}
main.cpp:
cpp
#include <iostream>
#include "my_function.h"
int main() {
std::cout << "Hello from main!" << std::endl;
print_message(); // 调用另一个文件中的函数
return 0;
}
如果不使用 CMake,而是手动管理 tasks.json,就要修改 args 字段来包含所有源文件,并指定头文件的搜索路径。
json
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build all files",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"src/main.cpp", // 明确列出所有源文件
"src/my_function.cpp", // 明确列出所有源文件
"-I", // 添加头文件搜索路径
"include/", // 指向 include 目录
"-o",
"${workspaceFolder}/bin/my_program" // 将可执行文件输出到 bin 目录
],
"options": {
"cwd": "${workspaceFolder}" // 工作目录设置为项目根目录
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Build all C++ files in the project."
}
]
}
注意:
args中列出了所有.cpp源文件。-I include/告诉编译器在include/目录中查找头文件。"${workspaceFolder}/bin/my_program"指定了输出可执行文件的路径和名称。要手动创建bin目录。options.cwd设置为${workspaceFolder}(项目根目录),这样相对路径src/和include/才能正确解析。
对于任何超过几个源文件的项目,最好还是使用构建系统(Make 或 CMake)来管理编译过程,而不是手动修改 tasks.json。
- Makefile: 可以手动编写
Makefile来定义编译规则。然后在tasks.json中调用make命令。 - CMake: 更现代和跨平台的工具。会自动处理源文件依赖和链接,大大的简化多文件项目的管理。
七、结语
在 VS Code 和 WSL 的强大组合下搭建的 C++ 开发环境。在 Windows 系统上直接运行一个完整的 GNU/Linux 环境,不用虚拟机或双启动。就能用上 Linux 成熟且广泛使用的工具链。
