VS Code 中 C++ 项目需用 CMake 构建、GDB 调试,核心是理解配置逻辑:装 C/C++、CMake Tools 和可选 CMake Helper 插件;确保 CMake 3.20+、GDB 和编译器已安装;根目录写精简 CMakeLists.txt;构建前须设为 Debug 模式并手动 Configure + Build;launch.json 应由 CMake Tools 自动生成。

在 VS Code 中用 C++ 做项目开发,CMake 负责构建,GDB 负责调试,两者配合得当,体验接近专业 IDE。关键不是装插件,而是理解配置逻辑和文件职责。
只装三个核心插件:C/C++(Microsoft 官方)、CMake Tools、CMake Helper(可选但推荐)。不需要 Code Runner 或其他“一键编译”类插件——它们会绕过 CMake,导致构建状态混乱。
确保系统已安装:
根目录下必须有 CMakeLists.txt,内容要精简明确。例如一个单文件项目:
<font size="2">cmake_minimum_required(VERSION 3.20) project(hello LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(hello main.cpp)</font>
不要写 find_package() 或复杂逻辑,除非真需要。CMake Tools 插件会自动检测该文件,并提供 “Build”、“Configure” 按钮。点击 “Configure” 后,它会在 build/ 目录生成 Makefile/Ninja 文件和缓存 —— 这一步失败,后面全卡住。
Writer
企业级AI内容创作工具
220
查看详情
默认 CMake 是 Release 模式,不带调试符号(-g),GDB 无法查看变量或单步。必须切换到 Debug 模式:
VS Code 的 launch.json 不需要手动写路径。用 CMake Tools 自动生成:按 Ctrl+Shift+P → “CMake: Debug” → 它会创建 .vscode/launch.json 并填好 program、miDebuggerPath 等字段,前提是构建成功且类型为 Debug。
● “No executable found”:没 build,或 build 类型不是 Debug,或 launch.json 的 program 路径写死但实际路径变了(建议删掉 launch.json,用 CMake Tools 重生成)
● 断点灰了/不命中:检查是否在 Debug 模式构建;确认源码路径和 GDB 加载的路径一致(尤其跨目录打开项目时,用 ${workspaceFolder} 变量更稳)
● GDB 启动报错 “not in executable format”:可执行文件可能被 strip 过,或用了错误的工具链(比如 Windows 下混用 MinGW 和 MSVC)
● 修改 CMakeLists.txt 后不生效:CMake Tools 不会自动重新 configure,需手动点 “CMake: Configure” 或启用 “Auto Configure” 设置(Settings → CMake: Auto Configure
基本上就这些。不复杂但容易忽略的是:每次改完 CMakeLists.txt 或切换 build type,都要主动 configure + build 一次。VS Code 不是魔法盒,它是你和 CMake/GDB 之间的透明窗口。
以上就是VS Code for C++:使用CMake和GDB进行项目开发的详细内容,更多请关注其它相关文章!
# 免费AV网站推广
# 的是
# 未来
# 都要
# 设为
# 会在
# 它是
# 葫芦岛营销推广厂家排名
# 抖音seo阿兴
# 中为
# 天天seo正确使用方法
# 网站建设吸引粉丝的方法
# 湛江网站建设品牌大全
# 安徽公众号关键词排名
# 什么是seo优化业务
# 泰州本土网站建设排名
# 产品网站建设厂家
# c++
# 自动生成
# 可选
# 不需要
# m
# win
# macos
# ai
# mac
# 工具
# windows
# json
# js
# vscode
# linux
# cmake
相关文章:
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址
Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】
Web Components中自定义开关组件状态同步的常见陷阱与解决方案
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
漫蛙官网正版漫画入口 漫蛙2官方网页登录地址
Mac终端命令大全_Mac常用Terminal指令速查
荒野行动PC版怎么注册_荒野行动PC版账号注册详细流程图文教程
葱吃多了会怎样 葱吃多了会伤胃吗
高德地图公交到站提醒失败如何解决 高德提醒权限设置
html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】
PHP字符串中复杂变量插值的最佳实践与语法解析
C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用
Pandas DataFrame 多条件优先级排序与排名
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
学习通在线学习平台 学习通网页版直接进入课程中心
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
Pandas DataFrame:高效添加条件计算列
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
在Blazor WebAssembly应用中动态注入客户端特定指标代码的策略
J*aScript中如何高效提取对象指定属性
AO3最新镜像入口 Archive of Our Own官方平台访问
win11怎么清理更新缓存 Win11删除Windows Update下载文件释放空间【技巧】
J*aScript类型检查_j*ascript代码规范
漫蛙漫画网页端入口 漫蛙2官方正版漫画站点
sublime怎么设置启动时打开的窗口_sublime会话管理与热退出
反效果?《战地6》免费试玩开启后玩家数不升反降
steam官方网页快速访问 steam账号注册全流程
AO3网页版最新入口合集 Archive of Our Own在线访问指南
百度浏览器字体显示异常偏小_百度浏览器字体渲染修复方案
使用J*aScript检测输入元素是否包含在特定类中
CSS布局中意外空白:解决padding-top导致的顶部间距问题
快手极速版在线观看 官方网页版登录地址
CSS Grid如何控制元素对齐_align-items与justify-items组合使用
Go语言HTML解析:利用Goquery精准获取指定元素内容
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南
动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道
抖音从哪里进入网页版_抖音官方入口链接
蛙漫官网漫画入口地址_蛙漫在线畅读无广告弹窗
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
Go语言中动态执行代码字符串的策略与实践
Animex动漫社网入口地址 Animex动漫社网正版在线入口
深入理解J*a链表中的IPosition接口与使用
苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】
在python-socketio事件处理器中安全访问Flask应用上下文
微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法
sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件
b站怎么看视频的弹幕数量_b站弹幕数量查看方法
AO3官方在线访问地址 Archive of Our Own最新镜像合集
*请认真填写需求信息,我们会在24小时内与您取得联系。