前言
最近有空研究c和cpp的项目,由于个人使用习惯,通常在vscode环境下进行开发工作。我想很多同学和我一样,采用的是windows+vscode的c/cpp环境(小声哔哔)。
但是研究复杂的项目时,往往debug是个难题。经过网上多个文章的整合,终于将vscode的c环境配置好(cpp是类似的)。其实主要就是task.json文件和llaunch.json该怎么写的问题。
1.task.json
直接将配置内容放到下面。该文件主要告诉编译器的配置命令,就和使用命令行敲得命令类似。在下面args中的内容很多都是可选的,可以根据情况选择。我理解整个文件应该就是相当于把手动的gcc命令转为配置文件,进而让IDE去执行编译命令。
{
"version": "2.0.0",
"tasks": [
{
//这里构建build任务
"label": "build",
"type": "shell",
"command": "gcc",
"args": [
//此处为编译选项
//"${file}",//该(单文件编译)
"${workspaceFolder}\\*.c",//(多文件编译)
"-o",
//承接上述,把源代码编译为对应exe文件,
//"${workspaceFolder}\\bin\\${fileBasenameNoExtension}.exe",//(单文件编译)
"${workspaceFolder}\\target.exe",//(多文件编译)
"-g",
//"-Wall",//获取警告
//"-static-libgcc",
//"-fexec-charset=GBK",//按GBK编码
//"-std=c11"//选择C标准,这里按照你需要的换
]
}
]
}
2.launch.json
launch.json文件主要是debug相关的内容,需要注意我在task.json将我的输出文件命名为target.exe,所以launch.json中也使用target.exe
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "cppdbg",
// cppdbg对应cpptools提供的调试功能;只能是cppdbg
"request": "launch",
"program": "${workspaceFolder}\\target.exe", //(target.exe为目标文件名)
"args": [],
"stopAtEntry": false, // 这里改为true作用等同于在main处打断点
"cwd": "${fileDirname}", // 调试程序时的工作目录,即为源代码所在目录,不用改
"environment": [],
"externalConsole": false, // 改为true时为使用cmd终端,推荐使用vscode内部终端
"internalConsoleOptions": "neverOpen", // 设为true为调试时聚焦调试控制台,新手用不到
"MIMode": "gdb",
"miDebuggerPath": "D:\\chromefile\\mingw64\\bin\\gdb.exe",
"preLaunchTask": "build" // 调试开始前执行的任务(任务依赖),与tasks.json的label相对应
}
]
}
总结
学到的同学们,赶紧去试试吧!!!