注
由于vscode环境被搞炸了一次,又不想重装,就重新配了一下launch和task,主要是为了断步调试,只是编译的话用cmake和Makefile都可以
其次,runcode扩展似乎与gcc/g++有冲突,建议先禁用
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/tt.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:/MinGW64/bin/gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe"
}
]
}
task.json
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe",
"command": "D:/MinGW64/bin/g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "D:/MinGW64/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "编译器: D:/MinGW64/bin/g++.exe"
}
]
}
具体要点说明
- 通常我们创建task时,里面是空的,需要在右下角添加配置
- launch里,"preLaunchTask"的属性值 要和 task里,"label"的属性值相等
- launch里,"miDebuggerPath"需要自己填,找到目标编译器地址就行
- launch里,"program"中查找的.exe名称要和task里“args -o”下生成的.exe名称相同,且在同一目录下
我这里不一样是因为我的cpp文件名称就是tt,因此 ${fileBasenameNoExtension} == tt
- “args -g”下,是需要参与编译的文件,通常保持${file}即可,如果文件结构比较奇特,或者不希望有些文件参与编译,则需要手动填写