vscode 配置编译调试环境

这里记载一下配置vscode调试和编译的tips。

VScode配置文件

在使用“运行和调试”的时候,往往会在".vscode"下生成两个文件:

  • launch.json
  • tasks.json

launch.json

launch.json是运行和调试的入口,在“运行和调试”选项的上方,有一个下拉选项,旁边有一个三角形的播放按钮。按下运行和调试按钮,就会执行对应的launch.json的内容。
“name”是显示在下拉列表里的title,json里面其他的内容还有“program”表示要启动的执行文件路径和文件名、app工作目录、前置需要配的环境变量、是否在进入程序处断点、是否打开外部控制台显示程序输出、给程序传参等等。感觉就和自己手动 ./启动程序一样。

可能需要手动添加“preLaunchTask”,用来在launch之前,执行tasks.json中的操作。这里的内容需要和"tasks"中的“label”一致。才能查找到并执行。

tasks.json

tasks.json的内容主要是具体的指令,例如通过GCC进行编译的指令,或者通过shell使用其他程序或内建指令。例如调用makefile。这里需要注意的是,如果要调试,需要断点或者局部变量可以被使用和抓取,在编译时需要给gcc 传入"-g"的参数,保留调试信息。
“type”有很多种,我知道的有“cppbuild”“shell”"process"等。可能有一些差别,默认生成的是cppbuild 使用的gcc编译。据说"shell"是使用shell来执行“command”并传入“argus”."process"是直接开进程。具体的我没有了解。
但是我使用"shell"调用make 直接通过makefile编译,觉得基本上就够我用了。

tips

自动生产的json中大量使用vscode提供的一些变量 如包含在${}内的部分。我觉得在构建自己的开发环境的时候,不妨改成自己的绝对路径,这些变量会跟随当前打开的文件变化。运用不当会把workspace搞得很乱。
之前我在想如何在一个workspace(工程)中,调试多个main,即多个程序。当时库是用C写的,app用cpp。自动生成的json中只有一个gcc,编译cpp就会出问题。想了一会,就发现。其实可以通过编写不同的launch,调用不同的tasks来实现,甚至是可以把操作放在makefile里,然后通过launch的入口,在tasks里执行不同的make target。来实现多种多样的操作。可以编出c库 链接给cpp 的APP,然后直接启动gdb调试。总之 非常灵活。

你可能感兴趣的:(C++,vscode,ide,编辑器)