新闻中心
VS Code for C++:使用CMake和GDB进行项目开发
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,导致构建状态混乱。
确保系统已安装:
- CMake(建议 3.20+,终端运行 cmake --version 验证)
- GDB(Linux/macOS 默认自带;Windows 推荐 MinGW-w64 或 MSVC 工具链附带的 GDB)
- 编译器(g++ / clang++ / cl.exe)且能被 CMake 自动发现
CMakeLists.txt 是项目的“说明书”
根目录下必须有 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 模式:
- 按 Ctrl+Shift+P → 输入 “CMake: Select Build Type” → 选 Debug
- 重新点击 “Build”(或按 Ctrl+Shift+B)
- 确认 build/ 目录下生成的可执行文件大小明显变大(含调试信息)
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
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
机器学习中对数变换预测结果的反向还原
打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门
Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑
J*aScript中localStorage数据的获取、清洗与格式化教程
我的世界官方游戏入口 我的世界官网平台直达链接
Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达
c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解
马斯克:Optimus 人形机器人复数形式为 Optimi
Python大型XML文件高效流式解析教程
Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南
C++20的source_location是什么_C++在编译期获取源码位置信息用于日志和断言
VS Code远程开发时如何处理文件权限问题
斑马英语APP如何开启夜间护眼阅读_斑马英语APP夜间模式与低蓝光设置教程
J*aScript异步迭代器_j*ascript异步遍历
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
解决Python logging 中 datefmt 导致时间戳固定不变的问题
手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议
电脑IP地址怎么查 查看本机IP地址的几种方法
夸克浏览器图书入口 夸克手机浏览器阅读入口
HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制
曝R星经典之作开发图 设计简陋但信息密集!
如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧
如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式
韩剧圈正版入口页面_韩剧圈官网登录链接
海量存储:机器视觉智能化的核心基石
J*aScript教程:根据元素文本内容动态设置背景色
在J*a中如何捕获IndexOutOfBoundsException_索引越界异常防护方法说明
React Router v6 教程:构建认证保护的私有路由与重定向策略
在J*aScript中复现SciPy的B样条拟合与求值:关键考量
vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法
html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】
HTML转PPT成品工具有哪些?HTML网页转PPT成品工具大全
Sublime Text怎么显示空格和制表符_Sublime显示不可见字符设置
《主播少女的秘密账号迷宫》首支宣传片
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等
Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法
铃兰之剑为这和平的世界希里技能组及加点推荐
Win10桌面图标出现小盾牌怎么办 Win10去除UAC图标教程【解决】
漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站
深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射
高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法
Tabulator表格中精确实现日期时间排序的指南
TikTok评论显示延迟如何处理 TikTok评论刷新优化方法
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
Eclipse怎么运行工程_Eclipse工程运行配置说明
Python中如何避免重复条件判断:利用数据结构实现动态逻辑


2025-12-05
浏览次数:次
返回列表
elper 插件;确保 CMake 3.20+、GDB 和编译器已安装;根目录写精简 CMakeLists.txt;构建前须设为 Debug 模式并手动 Configure + Build;launch.json 应由 CMake Tools 自动生成。