0. 官方链接YYDS
提前说一下我所在的环境,是ubuntu 20.04,1.68.1的vscode,用于C和C++环境的配置,本文内容不是如何配置文件,而是对于配置文件后的理解。
以下是官方链接,个人觉得英文写得挺易读的。
https://code.visualstudio.com/docs/cpp/config-linux
1. 格式(json格式)
需要看明白vscode配置文件的内容,需要提前知道什么是json格式,以下分享我看到一个链接,对于json格式大致理解即可,在我看来,json格式很像Python数据结构中的字典。
- 数组(Array)用方括号(“
[]
”)表示。- 对象(0bject)用大括号(“
{}
”)表示。- 名称/值对(
name/value
)组合成数组和对象。- 名称(
name
)置于双引号中,值(value
)有字符串、数值、布尔值、null、对象和数组。- 并列的数据之间用逗号(“
,
”)分隔
2. 内容
文件名 | 作用 | 配置方法 |
---|---|---|
task.json | 告诉 VS code 如何编译 .cpp 文件,配置后将调用 g++ 编译器基于源代码创建可执行文件。 |
选择:Terminal > Configure Default Build Task ,在下拉菜单中选择:g++.exe build active file ,选择会在 .vscode 文件中创建一个 tasks.json 文件。 |
launch.json | 可以使用 F5 使 VS Code 启动 GDB 调试器来调试程序。 | 1. 在主菜单选择 Run > Add Configuration…,然后选择 C++ (GDB/LLDB); 2. 下拉菜单中会有各种预定义的调试配置文件,选择 g++.exe build and debug active file。(也可能直接产生一个如下的调试文件,总之配置文件内容如下) |
c_cpp_properties.json | 对 C/C++ 扩展实现更多控制,可以改变编译器的路径、C++ 标准(默认为 C++17)以及更多。(compiler path and IntelliSense settings) | 在命令面板(Ctrl+Shift+P)中执行 C/C++:Edit Configurations(UI) 命令可以查看 C/C++ 的配置界面 C/C++ Configurations。VS Code 会将在 C/C++ Configurations 中被更改的配置写入到 ./vscode 下的 c_cpp_properties.json 文件中。 |
settings.json |
以上内容参考自:VS Code - C++ 的配置文件
2.0 task.json
如果只是需要编译代码信息,则配置这个文件即可。
源码信息
{
"tasks": [
{
// The task type to customize
"type": "cppbuild",
// The name of the task.
"label": "C/C++: g++ build active file",
// ***The path to either a compiler or script that performs compilation.
"command": "/usr/bin/g++",
// ***调试命令,即g++ -g ${file} -o ${fileDirname}/${fileBasenameNoExtension}
// -fdiagnostics-color=always 设置彩色错误提示
// -g 添加调试信息
// ${file} - 需要编译的文件,查看下文变量速查表
// -o 后续参数为可执行文件
// ${fileDirname}/${fileBasenameNoExtension} - 输出文件,查看下文变量速查表
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
// *** group 对象的 "isDefault": true 说明这个任务会在按下 Ctrl+Shift+B 时运行。
// 这个属性只是为方便,如果设置为 false 可以通过中断菜单中的 Tasks: Run Build Task 来运行任务。
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
变量速查表
变量名 | 作用 |
---|---|
${file} | 当前打开正在编辑的文件名,包括绝对路径,文件名,文件后缀名 |
${fileDirname} | 当前打开的文件所在的绝对路径,不包括文件名 |
${fileBasenameNoExtension} | 当前打开的文件的文件名,不包括路径和后缀名 |
以上内容来自链接VS code 中的各种变量 f i l e , {file}, file,{fileBasename},链接中还有更多说明。