首先配置C/C++的插件,然后执行Ctrl+Shift+B执行生成任务,注意此时焦点一定要将待执行的文件上,否则会报错。
修改生成的task.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
| {
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc 生成活动文件",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${workspaceFolder}/build/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。",
}
],
"version": "2.0.0"
}
|
修改两处:
- “args’:
"${filenamedir}/${fileBasenameNoExtension}"修改为"${workspaceFolder}/bulid/${fileBasenameNoExtension}",让生成的可执行文件存放在固定文件夹下,方便整理 - “cwd”:
"${filenamedir}修改为${workspaceFolder},将命令行目录改为工作区目录
然后,生成lunch.json文件,下面是我的配置模板,该模板可复用,但我现在使用的是WSL环境,不用的操作系统细节可能有些不同。主要的修改点在"program": "${workspaceRoot}/build/${fileBasenameNoExtension}"和"miDebuggerPath": "/usr/bin/gdb",前者的意思是调试工作目录下的build文件夹下的可执行文件,后者是你的GDB路径,在Linux下执行which gdb即可得到,如果没有出现路径,安装GDB即可。
这里补充一下,修改"cwd": "${workspaceFolder}/build"与task.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
| {
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/build/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
|
值得一提的是,现在的配置文件是单文件配置,对于一个大型项目肯定包含多个C/C++文件,当前配置可能不适用,我还在探索中,有机会后面在补充。
好了,这就是这篇博客的全部内容,简单讲解了一下VSCode中配置C/C++运行和调试环境的核心内容,当然还有一些前置条件没提,比如安装C/C++插件,配置该插件,这些请读者自行探索。