在使用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} - 文件所在的文件夹路径