背景
开始前先说一下搞这个的原因,最早的时候看不懂json,后面在工作中有大量接触json的缘故,看这个json其实也就是一个key-value对,因为之前自己的编译器总是debug不了,就很难受,花了一个上午的时间深入研究了一下这个vscode的配置文件信息,也算是记录一下。
Tasks.json
按编译逻辑来说,先讲tasks.json
先贴图:
![](http://zhangshiyu.com/zb_users/upload/2023/04/20230401105705168031782521118.png)
"label": 对应launch.json中的 "preLaunchTask";(一定要一致,决定了launch.json之前先运行哪个配置,tasks是一个array类型,里面理论来说可以存多个配置)
"command": 这个是编译器的命令,相当于选择了哪个编译器 (我配置了环境变量,所以这里是g++.exe,没有配置的话可能就需要按照 路径\\g++.exe来配置)
"args":编译器后面的命令,可以和command一起看 , 连起来简便看就是 g++ -g filename -o -finame.exe
这几个综合来说就是把一个.cpp文件编译成了一个可执行文件 .exe,这就是tasks.json的主要工作内容
launch.json
先贴图:
![](http://zhangshiyu.com/zb_users/upload/2023/04/20230401105705168031782528728.png)
"preLaunchTask":在执行launch.json之前需要先执行task.json,对应tasks.json的"label",看哪个label和他匹配,就执行哪个task
"program":可执行的文件,相当于选择了哪个可执行文件等一下要去运行
"miDebuggerPath":调试程序路径,这里一定要选择gdb,因为他是debug的时候用的,博主之前以为他是选择用哪个编译器,然后用的一直都是gcc/g++ 所以一直有问题,后面纠正过来就好了。(他的路径参数就需要根据自己的mingw64/bin下的路径来填)
综合来说这个launch.json就是把一个可执行文件.exe 执行起来,可以运行也可以debug。
所以这两个文件结合一下就达到了把一个.cpp文件或.c文件(这里用的是g++编译器,所以是.cpp文件,如果需要编译.c文件,只需要再配置一个gcc编译器即可)先由tasks.json编译为可执行文件filename.exe/.out (或者直接-o filename 都是可以的),然后再由launch.json把一个.exe/.out 文件执行起来。