安装插件
认准microsoft标志
配置task.json
在根目录的.vscode目录下新建编译任务文件 task.json,必须有g++
{
"tasks": [
{
"type": "cppbuild",
// 任务的名称,类比makefile里面的target
// launch文件可以用这个名字来配置依赖,类比makefile里面的prerequisites
"label": "C/C++: g++ build active file",
// 编译器的路径,这里是g++
"command": "/usr/bin/g++",
// 编译器的参数,会被传给g++
// 当我们的代码依赖额外的库或者头文件时,通过这个配置来添加
"args": [
"-fdiagnostics-color=always",
"-g",
// ${file}为当前打开的文件,比如helloworld.cpp
// 当我们将其改为*.cpp时,它会编译所有cpp文件
"${file}",
"-o",
// ${fileDirname}为当前打开的文件所在的文件夹
// fileBasenameNoExtension为当前打开的文件名(没有扩展名),比如helloworld
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}" // current working directory被设为当前文件的文件夹
},
// problemMatcher会分析任务运行结果,然后将其中出现的错误或者警告,显示在问题面板中。
"problemMatcher": [
"$gcc"
],
// 任务分组,将当前任务分到build组,可以通过在Command Palette
// 输入run build task来运行build组的任务
// 当然,如果任务分组是test,可以用run test task来运行
"group": {
"kind": "build",
"isDefault": true
},
// 任务细节,可以自己修改
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
配置launch.json
配置编译文件launch.json文件,必须有gdb
{
"configurations": [
{
// 这个调试任务的名字
"name": "C/C++: g++ build and debug active file",
// 调试任务的类型,它是由C/C++ extension定义的
"type": "cppdbg",
"request": "launch",
// 被调试的程序的路径
"program": "${fileDirname}/${fileBasenameNoExtension}",
// 被调试的程序的参数,这里我们的程序没有参数,故为空
"args": [],
// 是否则main函数设置断点
"stopAtEntry": true,
// 当前工作目录,current working directory
"cwd": "${fileDirname}",
// 环境变量
"environment": [],
// 是否使用
"externalConsole": false,
// 调试器,只能是gdb或者lldb
"MIMode": "gdb",
// gdb或者lldb的配置参数
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
// 前置依赖的任务,就是tasks.json里面的任务名字
"preLaunchTask": "C/C++: g++ build active file",
// debug工具的路径
"miDebuggerPath": "/usr/bin/gdb"
}
],
"version": "2.0.0"
}
然后就可以编译和调试cpp文件了。