当前位置: 首页 > news >正文

vscode配置C/C++教程(含常见问题)

零基础配置 VS Code 的 C/C++ 开发环境(Windows & Linux,G++ + GDB)

适用对象:第一次在 VS Code 编写 C/C++,希望一条龙完成安装 → 编译 → 调试的同学。

覆盖范围

  • 仅使用 G++/GCC + GDB(Windows 上通过 MinGW‑w64,Linux 用系统 GCC)
  • 不含 Clang、MSVC、macOS
  • 关键 .vscode/*.json 文件内已加 🔖 注解,指出需要你手动修改的地方。
    在这里插入图片描述

文章目录

  • 零基础配置 VS Code 的 C/C++ 开发环境(Windows & Linux,G++ + GDB)
    • 1 · 背景与目标
    • 2 · 环境准备
      • 2.1 安装 VS Code
      • 2.2 安装 G++ 编译器
      • 2.3 (Windows) 将 G++ 加入 PATH(为 vsocde 识别 g++ 命令)
    • 3 · 创建示例工程
    • 4 · .vscode 配置文件
      • 4.1 `c_cpp_properties.json` —— IntelliSense & 头文件
      • 4.2 `tasks.json` —— 一键编译
      • 4.3 `launch.json` —— GDB 调试
    • 5 · 多文件项目 & GDB 实战
    • 6 · 常见问题
    • 7 · 进阶
    • 8 · 结束语

1 · 背景与目标

  • 完成「编译 → 运行 → 调试」闭环
  • 掌握多文件项目与 GDB 单步调试

2 · 环境准备

2.1 安装 VS Code

  1. 访问 https://code.visualstudio.com/ 下载并安装。
  2. 打开 Extensions 侧边栏,安装:
    • C/C++ (Microsoft) — IntelliSense & 调试
    • Code Runner(可选)— 单文件快速运行

在这里插入图片描述

2.2 安装 G++ 编译器

操作系统安装方式
Windows下载 MinGW‑w64 (https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64/Personal Builds/mingw-builds/8.1.0/threads-win32/seh/),解压到 C:\Program Files (x86)(根据自己情况选择)
Linux (Ubuntu)sudo apt update && sudo apt install build-essential

执行 g++ --version 验证安装。

2.3 (Windows) 将 G++ 加入 PATH(为 vsocde 识别 g++ 命令)

  1. 资源管理器定位 C:\Program Files (x86)\mingw64\bin

    [图片占位符--资源管理器定位bin目录]

  2. 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量(或开始菜单搜env)

    [图片占位符--环境变量按钮]
    在这里插入图片描述

  3. 编辑 系统变量 里的 Path → 新建C:\mingw64\bin → 确定

    [图片占位符--编辑PATH对话框]

  4. 重开 PowerShell/CMD 再运行 g++ --version 确认生效。
    在这里插入图片描述


3 · 创建示例工程

1. 新建项目文件夹
在这里插入图片描述
2. 打开vscode:
在这里插入图片描述
3. 打开项目文件夹:
在这里插入图片描述

4. 新建源文件:
在这里插入图片描述

main.cpp 写入:

#include <iostream>
int main() {std::cout << "Hello, GCC & VS Code!" << std::endl;return 0;
}

4 · .vscode 配置文件

在工作区根目录新建 .vscode/ 文件夹,放置以下 3 个 JSON 文件。

4.1 c_cpp_properties.json —— IntelliSense & 头文件

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.22621.0","compilerPath": "C:/Program Files (x86)/mingw64/bin/g++.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "gcc-x64"},{"name": "C++","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.22621.0","compilerPath": "C:/Program Files (x86)/mingw64/bin/g++.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

4.2 tasks.json —— 一键编译

{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "C:/Program Files (x86)/mingw64/bin/g++.exe","args": ["-fdiagnostics-color=always","-g","${workspaceFolder}\\*.cpp","-o","${workspaceFolder}\\main.exe"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": "build","detail": "编译器: C:/Program Files (x86)/mingw64/bin/g++.exe"}]
}

运行 Ctrl+Shift+B 进行编译,出现main.exe说明被成功编译。

[图片占位符--构建任务运行]
此时按下 Ctrl+` ,输入./main.exe可执行
在这里插入图片描述

4.3 launch.json —— GDB 调试

{"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${workspaceFolder}\\${workspaceRootFolderName}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "C:\\Program Files (x86)\\mingw64\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]},{"name": "C/C++: g++.exe 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${workspaceFolder}\\main.exe","args": [],"stopAtEntry": false,"cwd": "C:/Program Files (x86)/mingw64/bin","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "C:\\Program Files (x86)\\mingw64\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe 生成活动文件"}]
}

[图片占位符--调试断点命中]


5 · 多文件项目 & GDB 实战

├── main.cpp
├── add.cpp
└── add.h

add.h

#pragma once
int add(int a, int b);

add.cpp

#include "add.h"
int add(int a, int b) { return a + b; }

main.cpp

#include <iostream>
#include "add.h"
int main() {std::cout << "2 + 3 = " << add(2, 3) << std::endl;return 0;
}
  • tasks.json 中使用 build all 任务一次性编译。
  • F5 启动 GDB ,常用命令:nsprint varbtcontinue

[图片占位符--GDB调试演示]


6 · 常见问题

症状原因解决
g++ 不是内部或外部命令PATH 未配置按 2.3 步骤添加后重启终端
iostream: No such fileincludePath 不全检查 compilerPath 与头文件路径
断点无法命中未加 -g 或程序路径不一致确保编译参数含 -glaunch.json 指向正确
中文输出乱码 (Win)终端编码chcp 65001 或改用 Windows Terminal

7 · 进阶

  • clang-format + editor.formatOnSave 统一代码风格
  • Ccache 加速重编译 (apt install ccache)
  • CMake Tools 管理大型项目

8 · 结束语

恭喜,你已在 VS Code 完成 G++/GDB 全链路配置并成功运行:

[图片占位符--Hello输出]

如有疑问,欢迎留言讨论,觉得有用请点赞收藏!

http://www.dtcms.com/a/393298.html

相关文章:

  • F021 五种推荐算法之美食外卖推荐可视化系统vue+flask
  • C++学习记录(10)模板进阶
  • cesium案例:三维钢铁厂园区开发平台(附源码下载)
  • 电商开放平台API接口对比爬虫的优势有哪些?
  • SpringDoc-OpenApi 现代化 API 文档生成工具介绍+使用
  • 打造现象级H5答题游戏:《终极主题答题冒险》开源项目详解
  • 实验1.2呼吸灯实验指导书
  • 实验1.3通过for循环精确定时呼吸灯
  • 【c++】多态(一)
  • 01、Python从入门到癫狂:基础
  • uniapp 弹窗
  • 17.2 《16小时→2.3小时!多模态AI颠覆PPT制作:跨国企业实战验证》
  • MyBatis 从入门到实战:环境搭建与核心原理详解
  • 深入剖析陌讯AIGC检测算法:Transformer架构在AIGC识别中的技术创新
  • 【Ai智能客服上篇】
  • 《C++程序设计》笔记p3
  • 华为数字化转型战略框架:从“1套方法+4类场景+3个平台”的全景设计
  • Redis:主从复制与哨兵模式解析
  • 【中压选型篇】中压电源进线与变压器选型全指南:从拓扑设计到并联运行
  • 【精品资料鉴赏】数据治理咨询项目实施方案
  • 基于陌讯AIGC检测算法的局限性探讨:最大512Token输入下的长文本处理方案
  • 应用随机过程(三)
  • A/B测试:随机化与观察单位不一致,如何处理更科学
  • 树拍易购商业模式解析:创新与合规并行的数实融合样本
  • 使用递归求阶乘的和
  • HTML 结构与常用标签
  • AI 智能体开发工作流从哪些方面入手?
  • USBL与DVL数据融合的实时定位系统,MATLAB仿真
  • 端到端与世界模型(1):自动驾驶的基础模型从 VLM 到 VLA
  • Let’s Encrypt 免费SSL证书一键获取 - 网页版极简教程