如何配置VSCode_以编译运行C++程序【教程】
发布时间 - 2026-01-27 00:00:00 点击率:次VSCode需手动配置系统C++编译器及tasks.json、c_cpp_properties.json、launch.json三文件才能正常编译调试;Windows推荐MinGW-w64,macOS装Xcode命令行工具,Linux装build-essential或gcc-c++;验证g++/clang++可用后,再配置扩展与任务。
VSCode 本身不带 C++ 编译器,必须手动配置外部工具链和任务,否则点击运行只会报错 g++: command not found 或卡在“正在生成任务”。
确认系统已安装可用的 C++ 编译器
VSCode 只是编辑器,真正编译靠的是你系统里的 g++(Linux/macOS)或 cl.exe(Windows + Visual Studio)或 g++.exe(MinGW)。没装好这个,后续所有配置都是空谈。
- Windows 用户:推荐安装 MinGW-w64,并把
bin/目录加进系统PATH;验证方式:终端执行g++ --version能输出版本号 - macOS 用户:装 Xcode Command Line Tools(
xcode-select --install),它自带clang++;也可用 Homebrew 装gcc,但默认仍走clang++ - Linux 用户:多数发行版需手动装
build-essential(Ubuntu/Debian)或gcc-c++(CentOS/RHEL)
安装 C/C++ 扩展并配置 c_cpp_properties.json
微软官方的 C/C++ 扩展(ms-vscode.cpptools)提供智能提示、跳转和调试支持,但它不负责编译——它只依赖你告诉它“头文件在哪、用哪个编译器、宏怎么定义”。
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),输入C/C++: Edit Configurations (UI),填入compilerPath,例如:/usr/bin/g++或C:/mingw64/bin/g++.exe - 确保
intelliSenseMode和你的编译器匹配:用g++就选gcc-x64,用clang++就选clang-x64 - 如果项目含第三方库(如 OpenCV),在
includePath中显式添加路径,否则#include红波浪线不会消失
用 tasks.json 定义编译任务
VSCode 的“运行”(Ctrl+Shift+B)本质是调用 tasks.json 里定义的 shell 命令。不配这个,就只能切到终端手动敲 g++ main.cpp -o main。
- 通过
Terminal > Configure Default Build Task > Create tasks.json file from template > Others创建空模板 - 填入实际编译命令,关键字段示例:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",

"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",
"problemMatcher": ["$gcc"]
}
]
}
-
problemMatcher必须设为$gcc(或$clang),否则编译错误不会在“问题”面板中高亮显示 - Windows 上路径分隔符用正斜杠
/更稳妥;${file}是当前打开的文件路径,不是整个文件夹
用 launch.json 启动调试而非仅运行
按 F5 调试前,必须有 .vscode/launch.json,且 program 字段要指向已编译好的可执行文件(不能是 .cpp 源码)。很多新手卡在这一步,以为“运行”和“调试”是同一套流程。
- 首次调试时 VSCode 会引导生成
launch.json,选择环境为GDB/LLDB(Linux/macOS)或Windows (GDB)(MinGW) -
program值应为"${fileDirname}/${fileBasenameNoExtension}",与tasks.json输出路径一致 - 务必开启
preLaunchTask,值设为g++ build active file(即tasks.json中的label),否则调试时可能运行旧二进制 - 若调试时提示
Cannot find GDB,说明没装gdb(Windows MinGW 自带,Linux/macOS 需单独装)
最常被忽略的一点:每次换编译器(比如从 g++ 切到 clang++)、换架构(x64 → arm64)、或加了新库,都得同步更新 c_cpp_properties.json 和 tasks.json 里的路径与参数——VSCode 不会自动感知这些变化。
# linux
# centos
# vscode
# js
# json
# windows
# ppt
# ubuntu
# 工具
# mac
# ai
# c++
# 架构
# select
# include
# default
# visual studio
# macos
# xcode
# opencv
# ui
# debian
# 设为
# 自带
# 填入
# 卡在
# 的是
# 都是
# 首次
# 会在
# 只会
# 微软
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
无锡营销型网站制作公司,无锡网选车牌流程?
使用Dockerfile构建java web环境
微信小程序 input输入框控件详解及实例(多种示例)
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
Laravel如何自定义错误页面(404, 500)?(代码示例)
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
如何快速搭建高效可靠的建站解决方案?
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
Python文本处理实践_日志清洗解析【指导】
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
java获取注册ip实例
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
Laravel distinct去重查询_Laravel Eloquent去重方法
如何在万网自助建站平台快速创建网站?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
公司门户网站制作流程,华为官网怎么做?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
iOS发送验证码倒计时应用
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
C++时间戳转换成日期时间的步骤和示例代码
如何在宝塔面板中创建新站点?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
如何确认建站备案号应放置的具体位置?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
QQ浏览器网页版登录入口 个人中心在线进入
Swift中switch语句区间和元组模式匹配
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
html5的keygen标签为什么废弃_替代方案说明【解答】
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
如何在腾讯云服务器上快速搭建个人网站?
网站建设整体流程解析,建站其实很容易!
Laravel怎么清理缓存_Laravel optimize clear命令详解
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
如何在万网ECS上快速搭建专属网站?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何在建站之星网店版论坛获取技术支持?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
敲碗10年!Mac系列传将迎来「触控与联网」双革新
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?


