Visual Studio Code C/C++ 环境配置教程
写在前面
Visual Studio Code(简称 VS Code)是一款轻量、高效、美观的跨平台源代码编辑器。它内置了对 JavaScript、TypeScript 和 Node.js 的支持,并为其他语言(如 C++、C#、Java、Python、PHP、Go)和运行时(如 .NET 和 Unity)提供了丰富的扩展生态系统。
在程序设计竞赛中,C++ 是每一位选手必须掌握的编程语言。本文将介绍如何为 Visual Studio Code 配置 C/C++ 环境。
安装 C/C++ 环境
VS Code 是一个 Editor(编辑器)而非 IDE(集成开发环境),所以想要 VS Code 能够编译或调试 C/C++ 程序,需要额外安装 C/C++ 环境。
安装环境的方案有很多,主要分为两种:
单独安装编译器,这样可以自由指定安装的编译器的版本。
使用 IDE 的环境,如 Dev-C++、Code::Blocks、Visual Studio 等。
本文将采取第一种方案:从 Winlibs 获取 GCC 和 MinGW-w64,并为其配置环境变量。
官网:WinLibs standalone build of GCC and MinGW-w64 for Windows
直接下载 Win64 | without LLVM/Clang/LLD/LLDB | Zip archive 版本的安装包即可。然后我们将其解压到 C 盘下的 Program Files 文件夹中,确保解压后路径为 C:\Program Files\mingw64
。
配置环境变量
配置环境变量的成功标准是能否在命令行中调用 g++
。
步骤如下:
- 快捷键
win + r
打开运行栏,键入SYSDM.CPL
并回车。即可打开「系统属性(System Properties)」页面。 - 依次点击「高级(Advanced)」标签、「环境变量(Environment Variables)」按钮,即可打开「环境变量(Environment Variables)」页面。
- 双击「系统变量(Systeam Variables)」栏的 Path 字段,即可打开「编辑环境变量(Edit environment variables)」页面。
- 点击「新建(New)」,输入编译器路径,点击「确定(OK)」即可。
检验环境变量是否配置成功,可以在命令行窗口中键入 g++ --version
并回车。如果显示能够显示 g++ 的版本信息就说明配置成功了。
修改环境变量不会对已经启动的终端生效,因此修改完成后需要重启终端。同理 VS Code 也需要重启。
安装 VS Code
可以在官网下载,也可以在 Microsoft Store 中安装,也可以在 WinGet 中安装。
官网:Visual Studio Code
0xfaner 安装的是 System 版本。
VS Code 安装 C/C++ 插件
点击左侧「扩展(Extensions)」进入应用商店,搜索 C/C++ 进行安装(所有者为 Microsoft)。
VS Code 可以通过安装插件来设置显示语言为中文(如果你需要的话),插件名为 Chinese (Simplified) Language Pack for Visual Studio Code
。
VS Code 创建项目文件夹
参考:Using GCC with MinGW
Dev-C++ 可以直接编译或调试单文件,但 VS Code 的调试只能在打开的文件夹中进行。你需要建立一个「项目文件夹」,以后调试就在这个「项目文件夹」中进行。
MinGW 的 GDB 不能调试中文路径的程序,因此请尽量避免使用中文路径名。以下两种情况请特别注意:
用户文件夹名为中文,而你的项目恰好在桌面文件夹、文档等目录下。如:
C:\Users\柏咕咕\Desktop\Project
。程序文件名为中文,文件名也被视为路径的一部分。如:
C:\Users\0xfaner\Desktop\Project\作业.cpp
。
推荐在 C:\Users\0xfaner
目录下新建 workspace
文件夹,作为所有的项目的总文件夹。每次需要新建项目时,可以直接在 workspace
文件夹下新建文件夹,并使用 VS Code 打开。
假定「项目文件夹」为 cpp-space,路径为 C:\Users\0xfaner\workspace\cpp-space
。在 VS Code 中依次点击「文件(File)」和「打开文件夹(Open File)」,选择 cpp-space
即可打开文件夹。
VS Code 创建配置文件
接下来我们在项目中新建配置文件(资源管理器或者 VS Code 都可以新建),结构目录如下:
1 | . |
以下是分别对应的文件的内容,直接复制粘贴即可。
1 | { |
1 | { |
1 |
|
配置文件中包含了编译器路径:tasks.json
中的 command
字段和 launch.json
中的两个 miDebuggerPath
字段。如果你将编译器安装到了其他路径,那么你需要修改这两个字段的值。
具体地,你需要把 C:\\Program Files\\mingw64\\bin\\
替换为实际的编译器路径。以 Dev-C++ 的编译器路径为例,miDebuggerPath
字段的值应为 C:\\Program Files\\Dev-C++\\MinGW64\\bin\\gdb.exe
。
配置完成后我们在 test.cpp
的代码页按 F5
,即可编译并运行程序。我们在弹出的窗口键入 1 2
,在第二行出现了 3
,说明配置成功!
实际上该配置文件中包含两种运行方案,你可以在 VS Code 最左侧的「运行与调试(Run and Debug)」栏中切换方案。两种方案的区别会在下文进行解释。
配置文件的解释
tasks.json
tasks.json
用于描述任务,这里我们只添加了一个任务:g++ build
,用于生成可执行文件。
注意看 tasks.json
的 command
args
字段,实际上对应了如下命令。
1 | C:\Program Files\mingw64\bin\g++.exe -fdiagnostics-color=always -Wfatal-errors -Wextra -Wall -g Code.cpp -o .\Code.exe -std=c++11 |
这个命令就是我们手写编译时的命令,解释一下部分编译选项:
-fdiagnostics-color=always
:显示彩色诊断信息。-Wfatal-errors
:让编译器在遇到第一个错误时中止编译,而不是尝试继续并打印进一步的错误消息。-Wextra
:对于部分事件打印额外的警告信息。-Wall
:启用更多更严格的警告信息。-g
: 编译器在编译时产生调试信息。-std=c++11
:使用C++11
标准。
launch.json
launch.json
文件用于配置调试器,这里我们添加了两个任务:(GDB) Launch & Pause
和 (GDB) Launch
,分别代表 release 和 debug 模式下的运行。
当我们无需进行调试的时候,我们可以使用 (GDB) Launch & Pause
,程序运行结束后还要再按一次按键才会退出窗口。这和 Dev-C++ 的表现一致。
当我们需要调试时,我们可以使用 (GDB) Launch
,此时 VS Code 中设置的断点将会生效,并支持单步调试。
解释一下配置文件的部分字段:
program
与args
:调用的程序和给定的参数。preLaunchTask
:调试器启动前执行的任务,这里执行的任务就是tasks.json
的任务,需要保证该字段的值在tasks.json
中有对应的label
。cwd
:调试器启动时的工作目录,这里设置为「项目文件夹」。