vscode中C/C++配置文件
参考官方文档
这里使用的是 mingw-w64 的 g++ 编译器和 gdb 调试器。
task.json
该配置文件用于指定编译 .cpp 文件时的配置。
1 | { |
label用于呈现该任务在任务列表中的名称command用于指定使用的编译器args用于指定传递给编译器的命令行参数-fdiagnostics-color=always是一个编译器选项,用于启用带颜色的诊断信息。-g是一个编译器选项,表示需要生成调试信息${file}是一个变量,表示当前文件的路径。这里指的就是需要编译当前的文件-o是一个编译器选项,用于指定输出文件的名称。${fileDirname}\${fileBasenameNoExtension}.exe是一个变量和字符串的组合,表示输出文件的路径和名称。${fileDirname}代表当前文件所在的目录路径,${fileBasenameNoExtension}代表当前文件的基本名称(不包含扩展名),.exe表示输出文件的扩展名为.exe。
options字段用于指定任务的附加选项"cwd": "${fileDirname}"指定工作目录为当前文件所在的目录
problemMatcher用于识别任务输出中的错误、警告或其他特定的消息,并将其解析为可在编辑器中显示或处理的格式,从而让编辑器可以根据任务输出中的问题信息,如编译错误或警告,将其在源代码中进行高亮显示、导航到错误位置、生成错误列表等。$gcc表示用于解析GCC编译器的输出
detail中的内容是任务列表中作为描述的内容
launch.json
该配置文件用于指定调试 .cpp 文件时的配置。
1 | { |
name: 配置项的名称,用于在调试器界面中显示。type: 调试器的类型。在这个示例中,使用的是cppdbg,表示 C/C++ 调试器。request: 指定调试器的请求类型。- 在这个示例中,使用的是
launch,表示启动调试器。其他请求类型还有attach(附加到正在运行的进程进行调试)和attachCore(附加到核心转储文件进行调试)
- 在这个示例中,使用的是
program: 指定要调试的可执行文件路径。${fileDirname}\${fileBasenameNoExtension}.exe表示使用的是当前文件所在目录下的可执行文件路径args: 传递给可执行文件的命令行参数。stopAtEntry: 指定是否在程序入口处停止。cwd: 指定调试器的当前工作目录。environment: 指定调试器的环境变量。externalConsole: 指定是否在外部控制台中运行程序。- 在这个示例中,设置为
false,调试的时候就会直接使用vscode中的面板。 - 如果设置为
true,就会跳出来一个黑窗口
- 在这个示例中,设置为
MIMode: 指定调试器的 MI(Machine Interface)模式,用于定义调试器和其他工具之间的交互方式。使用MI模式,外部工具可以向GDB发送各种命令,如设置断点、执行程序、单步执行、查询变量值等- 在这个示例中,使用的是
gdb,表示使用 GNU Debugger。
- 在这个示例中,使用的是
miDebuggerPath: 指定调试器的可执行文件路径。在这个示例中,使用的是D:\mingw64\bin\gdb.exe,表示使用 MinGW-w64 工具链下的 GDB。setupCommands: 配置调试器的附加命令。preLaunchTask: 在启动调试器之前执行的任务。在这个示例中,指定了一个名为C/C++: g++.exe 生成活动文件的任务。version: launch.json 文件的版本号。在这个示例中,使用的是2.0.0。
c_cpp_properties.json
1 | { |
name配置项的名称。includePath指定编译器应该搜索头文件的路径。${workspaceFolder}/**表示在工作目录下搜索所有子目录。这样可以确保编译器在编译过程中能够找到所需的头文件。
defines定义预处理器宏。预处理器宏是在代码编译之前由预处理器处理的标识符。compilerPath用来推断C++标准库头文件的路径。当扩展知道这些文件的位置时,它可以提供智能代码补全和跳转到定义等功能。cStandard指定C语言的标准版本。cppStandard指定C++语言的标准版本。intelliSenseMode指定智能感知(IntelliSense)模式。IntelliSense是一个代码补全和代码分析功能,它可以提供代码提示、语法检查等功能。windows-gcc-x64表示使用适用于Windows平台的gcc编译器的智能感知模式。
评论
