视频加载失败

VSCode C++ 单文件编译调试配置

591 字
3 分钟
VSCode C++ 单文件编译调试配置

刷算法题/竞赛时常用「单文件」工作流:打开一个 .cpp,按 F5 就编译并调试当前文件,不用建工程。下面是一套 VSCode 配置,放进工作区的 .vscode/ 即可,工具链为 Linux g++/gdb。

tasks.json#

g++ 以 -std=c++23 -g 编译当前活动文件,产物输出到源文件同目录的 .vscode/.compile/-O2(吸氧)和 -Wall 默认注释,需要时放开:

{
"tasks": [
{
"type": "cppbuild",
"label": "Main g++ 生成活动文件",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-std=c++23",
// "-O2", // O2吸氧
"-g",
//"-Wall", // 开启所有警告
"${file}",
"-o",
"${fileDirname}/.vscode/.compile/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
],
"version": "2.0.0"
}

关键项:

  • ${file}:当前活动文件的完整路径。
  • ${fileDirname}:当前文件所在目录。
  • ${fileBasenameNoExtension}:当前文件名去掉扩展名(如 a.cppa)。
  • group.isDefault: true:设为默认构建任务,Ctrl+Shift+B 直接触发。
  • problemMatcher: ["$gcc"]:解析 gcc 的编译错误输出,Problems 面板里可点跳。

launch.json#

gdb 调试上面编译出的产物,preLaunchTask 指向 tasks.json 的 label,按 F5 自动先编译再调试:

{
"configurations": [
{
"name": "Main C++ 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/.vscode/.compile/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"internalConsoleOptions": "neverOpen",
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"preLaunchTask": "Main g++ 生成活动文件"
}
],
"version": "2.0.0"
}

关键项:

  • program:调试的目标程序,即上面 tasks.json 编译出的产物路径。
  • preLaunchTask:调试前先执行的任务名,对应 tasks.json 里的 label——「按 F5 自动先编译再调试」就是靠它串联的。
  • MIMode: gdb / miDebuggerPath:用 gdb 作为调试器(MI 协议),并指定其路径。
  • stopAtEntry: false:不在程序入口自动断下;设 true 会在启动时停在 main 第一行。
  • externalConsole: false:不弹外部终端窗口,程序输出走 VSCode 的调试控制台(Debug Console);设 true 会另开一个控制台窗口。
  • internalConsoleOptions: neverOpen:不自动切换到调试控制台,保持当前终端视图。

c_cpp_properties.json#

IntelliSense 配置:告诉 C/C++ 扩展按哪个编译器、哪个标准解析代码,从而提供补全、跳转、诊断:

{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c17",
"cppStandard": "c++23",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}

关键项:

  • compilerPath:IntelliSense 用来推断内置宏、头文件搜索路径的编译器(这里是 /usr/bin/g++)。
  • cppStandard: c++23:按 C++23 标准解析代码。
  • intelliSenseMode: linux-gcc-x64:匹配 gcc 在 Linux/x64 下的语法与内置定义。
  • includePath:头文件搜索路径,${workspaceFolder}/** 表示从工作区根递归包含。
VSCode C++ 单文件编译调试配置
https://cialo.site/posts/coding/vscode-cpp-debug/
作者
洛璃
发布于
2026-08-01
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
洛璃
初春的离去,晚樱的谢幕
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
38
分类
12
标签
166
总字数
160,464
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.6
文章许可
CC BY-NC-SA 4.0
文章目录