在使用VS Code进行C/C++的开发过程中,有三个至关重要的配置文件,分别是 tasks.json, launch.json 和 c_cpp_properties.json
1. tasks.json
tasks.json 是在 vscode 中辅助程序编译的模块,可以代你执行类似于在命令行输入 “gcc hello.c -o hello” 命令的操作,你只要在图形界面下操作即可生成可执行文件。
当你在项目文件夹下打开 vscode 后:
1) 选择“终端”; 2) 选择“配置任务”; 3) 选择你想使用的编译器(这里本人选择 gcc);
即可生成默认的 tasks.json 文件。
可以看到在文件夹下生成了名为 .vscode 的文件,tasks.json 就放在其中。
⭐其中比较重要的几个变量:
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", //任务类型,如果是shell,下面的command就相当于执行shell命令 "label": "环境配置测试", //任务的名称,可以修改,但一定要和launch中的"preLaunchTask"项保持一致 "command": "/usr/bin/gcc", //编译器的路径 "args": [ //编译时使用的参数,和命令行下相同 "-g", "${fileDirname}/hello.c", "-o", "${fileDirname}/hello" ], //上述内容相当于在命令行下输入了: gcc hello.c -o hello "options": { "cwd": "/usr/bin" //编译器的目录 }, "problemMatcher": [ "$gcc" //使用gcc捕捉错误 ], "group": "build", "detail": "compiler: /usr/bin/gcc" //一些描述性信息 } ] }
也可以参考 Integrate with External Tools via Tasks 官方文档 文档进一步了解
2. launch.json
launch.json 是用于运行 ( run ) 和调试 ( debug ) 的配置文件,可以指定语言环境,指定调试类型等等内容。
打开 VS Code 后,按照下图所示的提示,从左向右依次点击(也可以在上方菜单栏依次选择 :1) “运行”;2) “打开配置”;3) 选择 " C++ (GDB/LLDB) " 即可生成 launch.json),创建 launch.json 文件
生成的 launch.json 也放在 .vscode 文件夹中
⭐其中各种变量的内容及涵义如下:
{ "version": "0.2.0", "configurations": [ { "name": "运行和调试", //运行和调试任务的名称,可自定义 "type": "cppdbg", //配置类型,默认即可 "request": "launch", //launch模式允许我们打断点进行调试,默认即可 "program": "${fileDirname}/hello", //程序目录,这里相当于"./hello" "args": [], //程序(main函数)的入口参数 "stopAtEntry": false, //在入口处暂停,选true相当于在入口处增加断点 "cwd": "${workspaceFolder}",//当前的文件目录 "environment": [], //添加到程序的环境变量 "externalConsole": false, //外部控制台,true在调试时会开启系统控制台窗口,false会使用vscode自带的调试控制台 "MIMode": "gdb", //使用gdb进行调试 "setupCommands": [ //用来设置gdb的参数,默认即可 { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "环境配置测试", //运行和调试前要执行的task(编译)任务,名称要对应上task.json里的"label"任务名 "miDebuggerPath": "/usr/bin/gdb" //debug调试工具的路径,这里使用gdb所在的路径 } ]
也可以参考 Configuring C/C++ debugging官方文档 和 Debugging in VS Code官方文档 进行设置
3. c_cpp_properties.json
c_cpp_properties.json 主要用来设置包含头文件的路径,设置 C/C++ 支持的版本号等等。
1) 点击 Ctrl + Shift +P 弹出命令搜索框;2) 选择 C/C++: 编辑配置 (UI) 即可生成 c_cpp_properties.json 文件,此文件同样包含在.vscode文件夹中。
⭐其中主要的变量名称和涵义如下:
{ "configurations": [ { "name": "Linux", //配置名称,默认为系统名,可以自行更改 "includePath": [ //(常用)运行项目包含.h头文件的目录, "${workspaceFolder}/**"//此处会匹配工作文件下的所有文件 ], //添加"compilerPath"后,系统include路径可不写明 "defines": [], //(常用)定义一些需要的变量,等价于在编译时写"-D变量" "compilerPath": "/usr/bin/gcc", //编译器的路径 "cStandard": "gnu17", //C标准的版本 "cppStandard": "gnu++14", //C++标准的版本 "intelliSenseMode": "gcc-x64" //IntelliSense的一些配置,默认即可 } ], "version": 4 }
也可参考 c_cpp_properties.json 官方文档 设置更多内容。
在上述三个配置文件中,我们会看到类似于 ${workspaceFolder} 等等类似的描述,这些描述是 VS Code 预定义变量名,可以用来代指工作目录的路径,环境变量的名称,生成文件的名称等等。使用这些预定义的变量名可以使得我们的开发过程更加高效,同时可移植性也大大增强。更多内容可以参照官方文档 Variables Reference。
${workspaceFolder} - VS Code当前打开工作区文件夹的路径 ${file} - 当前打开文件的绝对路径 ${fileBasename} - 当前打开文件的名称 ${fileBasenameNoExtension} - 当前打开文件的名称,但是不加后缀名 ${fileDirname} - 文件所在的文件夹路径
欢迎各位指正和补充!