Visual Studio Code 配置C/C++环境

本文介绍了VSCode配置C/C++环境的方法与部分注意事项。

写在前面

Visual Studio Code(以下简称VSCode)是一个运行于Mac OS XWindowsLinux之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器

该编辑器集成了所有一款现代编辑器所应该具备的特性,包括语法高亮(syntax high lighting)可定制的热键绑定(customizable keyboard bindings)括号匹配(bracket matching)以及代码片段收集(snippets)。同时这款编辑器也拥有对 Git 的开箱即用的支持。

VSCode如此优秀,以至于我这个算法竞赛选手也被它的轻量、简洁与优美深深吸引。在算法竞赛中,C/C++是每一个选手必会的编程语言。因此我今天特地写了这篇文章来介绍一下如何配置VSCode的C/C++环境

准备

本次教程使用win10系统,VSCode版本为: 1.38.1 (user setup)

安装VSCode

下载地址

安装C/C++插件

点击左侧Extensions进入应用商店,搜索C/C++

选择第一个候选项(左上角有星标),安装。

安装编译/调试环境

推荐安装Dev-Cpp,若电脑中已经安装了Dev-CppCode::Blocks或者MinGW可跳过该步。

Dev-Cpp安装教程可参考:Dev-Cpp简易安装指南

配置系统环境变量

Dev-Cpp为例:

此电脑上右击,选择属性,然后按照下图配置。

如图

修改VSCode调试配置文件

因为VSCode的调试需要在打开的文件夹中进行(因为VSCode会生成一个该文件夹的配置文件),而不能像Dev-Cpp直接调试一个单独的文件。所以我推荐建立一个你自己的代码文件夹,以后调试就在这个文件夹中进行。

VSCode[文件]-[打开文件夹](若为VSCode默认语言为英文,安装一个中文插件即可),即可打开文件夹。

新建一个test.cpp,键入一段简单的C/C++代码,例如:

1
2
3
4
5
6
7
8
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a + b << endl;
return 0;
}

此时按调试快捷键F5,会提示你选择环境,选择C++(GDB/LLCB),此时会提示你再选择一个配置,选择g++.exe build active file

此时将新建的launch.json内容替换为如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{
"version": "0.2.0",
"configurations": [
{
"name": "(GDB) Launch & Pause",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "g++",
"program": "C:/WINDOWS/system32/cmd.exe",
"args": [
"/C",
"${fileDirname}/${fileBasenameNoExtension}.exe",
"&",
"pause"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "(GDB) Launch",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "g++",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

若你使用的不是Dev-Cpp,或者Dev-Cpp是非默认路径安装,需要修改“miDebuggerPath”字段的值为实际路径。

此时在test.cpp的代码页按F5,会提示你找不到任务“g++”,选择配置任务

点击使用模板创建 tasks.json 文件,然后选择Others

此时将新建的tasks.json内容替换为如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"version": "2.0.0",
"command": "g++",
"args": [
"-Wfatal-errors",
"-Wextra",
"-Wall",
"${relativeFile}",
"-std=${config:C_Cpp.default.cppStandard}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe"
],
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}

然后按Ctrl+Shift+P,键入Open Settings (JSON),选择第一项,打开settings.json文件,在其中加入字段

1
"C_Cpp.default.cppStandard": "c++11"

要注意在本行尾或上一行尾加入一个逗号,保证字段间用逗号隔开。

同时如果有些同学会发现自己的头文件部分有下划线,此时需要添加配置文件:c_cpp_properties.json

按下Ctrl+Shift+P,键入C/C++:Edit Configurations(JSON),将中的compilerPath字段的值改为你所设置的编译路径即可。

此时回到代码页面,按F5。弹出了cmd窗口。键入1 2,在第二行出现了3,说明配置成功!

注意事项

本文介绍的配置支持程序运行结束后等待用户按下任意键再关闭窗口。如需要此功能,请在调试时选择配置:(GDB) Launch & Pause。如不需要,请选择配置:(GDB) Launch

本文中配置的C++标准默认为C++11,如果需要更改,只需要修改settings.json文件中的 “C_Cpp.default.cppStandard”字段的值为你所需要的标准即可。

如果你按照本文要求配置,但是仍旧无法成功调试C/C++程序,请检查自己的文件夹路径中是否包含中文。因为MinGW不支持中文路径。尤其是桌面文件夹的路径,很多的User用户名是中文,而桌面文件夹都在User文件夹下。

如果仍未解决问题,欢迎联系我:0xfaner@gmail.com