如何在VSCode中配置C/C++ Debug
下载并安装MinGW
首先进入MinGW官网,点击Download按钮。
进入下载页面后,点击MinGW Installation Manager (mingw-get)。
进入mingw-get的下载页面后,点击Show按钮,然后分别下载mingw-get-0.6.3-mingw32-pre-20170905-1-bin.tar.xz和mingw-get-0.6.3-mingw32-pre-20170905-1-gui.tar.xz文件(此过程可能需要挂VPN)。
注意:其实直接用
mingw-get-setup.exe
安装MinGW也可以,略去了解压步骤。
两个文件下载完成后,将其解压至同一文件夹中。
进入MinGW目录下的libexec\mingw-get
文件夹,点击guimain.exe
运行。
等待MinGW载入完成,这个过程可能很长。
加载完成后看起来如图所示,其中Basic Setup是基本要安装的,All Packages则包含了所有可以安装的包,具体各包的作用我们在此不做深入探讨了。
右键单击想要安装的项目,选择Mark for Installation对想要安装的项目进行标记,同时该项目的依赖项也会被标记为需要安装。
在All Packages中找到mingw32-gcc-g++-bin
和mingw32-gdb-bin
,标记它们为需要安装的项目,此时它们的依赖项也会被同时标记。
点击左上角菜单栏的Installation,选择Apply Changes,在弹出的界面中再点击Apply开始安装所选的项目。
等待它安装完成,这个过程可能会很长。安装完成后点击Close按钮即可。
在计算机-系统属性-高级系统设置-环境变量将MinGW\bin
添加到Path
中。
打开cmd
,输入gcc -v
,输出如下信息即表示安装成功。
配置VSCode
在扩展中搜索C,然后选择C/C++
插件进行安装。
安装完成后重启,并打开一个文件夹作为C/C++开发的工作空间。
点击上方菜单栏中的调试-打开配置。
在打开的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{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示外部控制台窗口
"MIMode": "gdb",
"miDebuggerPath": "D:\\MinGW\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
结果如下所示:
然后保存launch.json
文件。
然后点击上方菜单栏中的终端-配置任务…。然后选择使用模板创建 tasks.json 文件,再选择Others 运行任意外部命令的示例,这将打开一个tasks.json
文件。
在打开的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{
"version": "2.0.0",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileBasenameNoExtension}.exe",
"-fexec-charset=GBK"
], // 编译命令参数
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
结果如下所示:
接下来,我们编写一个HelloWorld程序,然后测试它:
点击上方菜单栏的调试-非调试启动以开始运行:
最终结果如下所示: