【Tools】Visual Studio Code配置C/C++编程环境保姆级教程

00. 目录


在本教程中,将会安装 Visual Studio Code(后简称 VSCode),并在 VSCode 中安装 C/C++ 相关插件, 同时也将 VSCode 配置为使用 MinGW-W64 中的 GCC

C/C++ 编译器(gcc/g++)和 GDB 调试器来创建在 Windows 上运行的程序。配置 VSCode 后,你将编写、编译、运行和调试大多数的 C/C++ 程序。

01. Visual Studio Code概述

Visual Studio Code是一种简化且高效的代码编辑器,同时支持诸如调试,任务执行和版本管理之类的开发操作。它的目标是提供一种快速的编码编译调试工具。然后将其余部分留给IDE。vscode集成了所有一款现代编辑器所应该具备的特性,包括语法高亮、可定制的热键绑定、括号匹配、以及代码片段收集等。

Visual Studio Code(简称VSCode)是Microsoft开发的代码编辑器,它支持Windows,Linux和macOS等操作系统以及开源代码。它支持测试,并具有内置的Git版本控制功能以及开发环境功能,例如代码完成(类似于IntelliSense),代码段和代码重构等。编辑器支持用户定制的配置,例如仍在编辑器中时,可以更改各种属性和参数,例如主题颜色,键盘快捷键等,内置的扩展程序管理功能。

跨平台支持
支持 Windows、macOS 和 Linux 系统,提供一致的开发体验。

智能代码编辑

  • 语法高亮自动补全(IntelliSense)、代码片段错误检查等。
  • 内置 Git 版本控制,可直接提交代码、解决冲突。
  • 调试工具 支持断点、变量监控和逐行调试。

可扩展性

  • 通过插件市场(Marketplace)安装扩展,支持语言(Python、Java、C++ 等)、框架(React、Vue、Django 等)、主题和工具。
  • 集成终端,可直接运行命令行操作。

远程开发
通过 ​Remote Development 扩展,可连接远程服务器、容器或 WSL(Windows Subsystem for Linux),实现云端或本地跨环境开发。

高度可定制
支持自定义快捷键、主题、布局和工作区配置,适配个人开发习惯。

优势

  • 轻量快速:启动速度快,资源占用低,适合低配设备。
  • 免费开源:无功能限制,社区持续更新优化。
  • 强大生态:超过数万款插件,覆盖几乎所有开发需求。
  • 多语言支持:通过语言服务器协议(LSP)提供智能代码分析。

适用场景

  • 前端开发:集成 Emmet、Live Server 等工具,快速构建网页。
  • 全栈开发:支持 Node.js、数据库扩展和后端框架。
  • 数据科学与机器学习:Jupyter Notebook 集成、Python 数据分析。
  • 教育与学习:轻量易用,适合编程初学者。
  • 云原生开发:通过 Docker 和 Kubernetes 扩展管理容器化应用。

02. Visual Studio Code下载

官网下载:https://code.visualstudio.com/Download

快速下载:VSCodeSetup-x64-1.98.2.rar

在这里插入图片描述

03. Visual Studio Code安装

教程:【Tools】Visual Studio Code安装保姆级教程(2025版)

04. Mingw-w64概述

MinGW-W64(Minimalist GNU for Windows 64)是Windows平台的开源GNU工具链,基于GCC(GNU Compiler Collection),提供在Windows上编译原生32/64位应用程序的能力。它是原MinGW项目的增强分支,支持更广泛的Windows API和现代编程标准。

核心功能

(1) 跨架构支持

  • 同时支持生成 32位(x86)64位(x86_64) Windows可执行文件(PE格式)。
  • 提供多种异常处理模型(如SJLJ、SEH、Dwarf)。

(2) 编译器与工具链

  • 包含 GCC(C/C++/Fortran等)、GDB(调试器)、Binutils(链接器/汇编器)。
  • 支持C++11/14/17/20标准及OpenMP并行编程。

(3) API兼容性

  • 完整支持 Windows API(Win32、DirectX等)和部分 POSIX兼容层(如pthread线程库)。
  • 可调用MSVC编译的库(需处理ABI兼容性问题)。

(4) 跨平台开发

  • 生成不依赖第三方运行库的独立EXE文件。
  • 结合CMake/Makefile实现跨平台构建。

优势与特点

  • 开源免费:遵循GPL协议,无商业授权限制。
  • 轻量化:相比Visual Studio,占用资源少,适合低配置环境。
  • 生态丰富:兼容大多数GNU工具和开源库(如OpenSSL、SDL2)。
  • 灵活定制:可自定义编译选项(静态链接、调试符号等)。

对比其他工具

工具MinGW-W64MSVC(Visual Studio)Cygwin
目标平台原生Windows原生WindowsPOSIX兼容层模拟
性能接近原生高度优化因兼容层存在性能损耗
依赖库需手动链接Windows API集成Windows SDK依赖Cygwin DLL
适用场景跨平台开发/轻量化编译大型Windows项目Linux工具移植

典型应用场景

(1) 跨平台项目移植
将Linux C/C++项目(如FFmpeg、Python扩展)编译为Windows版本。

(2) 游戏开发
配合OpenGL/SDL等库开发轻量级游戏。

(3) 教育与研究
高校教学中替代Turbo C等老旧工具,支持现代C++特性。

(4) 工具链构建
为VSCode、CLion等编辑器提供后端编译环境。

05. Mingw-w64下载

MinGW-w64 的安装包,我们安装的 MinGW 版本是 11.0,对应的GCC版本为13.2.0。

官网下载:https://www.mingw-w64.org/

平台下载:mingw64.zip

MinGW版本:

  • x86_64-posix-sjlj
  • x86_64-posix-seh
  • x86_64-win32-sjlj
  • x86_64-win32-seh
  • i686-posix-sjlj
  • i686-posix-dwarf
  • i686-win32-sjlj
  • i686-win32-dwarf

DWARF:一种带调试信息的包, 所以比一般的包尺寸大,仅支持32位系统。dwarf 的性能要优于 sjlj。
SJLJ:跨平台,支持32、64位系统,稳定性好。缺点是:运行速度稍慢,GCC不支持。sjlj支持32、64两种编译,需加-m32或-m64参数。
SEH:性能较好,调用系统机制处理异常,支持32,64位系统,缺点是:GCC不支持。
posix: 开发 Linux、Unix、Mac OS 等操作系统下的程序,启用了C++ 11 多线程特性。
win32: 开发 Windows 程序,未启用C++ 11 多线程特性。

06. Mingw-w64配置

我们安装的 MinGW 版本是 11.0,对应的GCC版本为13.2.0。

6.1 将mingw64.zip解压到指定目录下,比如作者的路径为D:\tools\mingw64

在这里插入图片描述

6.2 进入mingw64文件夹下的bin文件夹,复制当前路径。

在这里插入图片描述

6.3 在最底部的任务栏搜索框中搜索“高级系统设置”

在这里插入图片描述

注意,如果在最底部的任务栏中没有看到搜索框,请点击“windows”键。

Ø 如果是windows 10 系统,请在弹出开始菜单之后直接打字,搜索框会自动出现。

Ø 如果是 windows 11 系统,搜索框会在开始菜单顶部。

6.4 进入高级系统设置之后,点击“环境变量”按钮。

在这里插入图片描述

6.5 双击“Path”。

在这里插入图片描述

6.6 点击“新建”,粘贴前面复制的 MinGW 路径地址,连按三个“确定”(包括前面打开的两个窗口,也需要点击“确定”)。

在这里插入图片描述

07. Mingw-w64测试

7.1 按组合键Win + r之后,输入cmd回车。

在这里插入图片描述

7.2 回车之后,就可以调出 CMD 的终端窗口了,然后分别输入下面的命令,每输入一次命令后回车一次。

gcc --version
g++ --version
gdb --version

出现如下图一样的信息,就说明 C/C++ 的编译环境已经安装好。

在这里插入图片描述

08. Visual Studio Code插件

4.1 安装中文插件

中文插件非必须安装插件,考虑到很多同学的英文水平可能不是很好,对于全英文的开发环境会犯难,这里可以使用 VS Code 自带的汉化插件来解决这个问题。

在这里插入图片描述

安装好之后,点击右下角按钮重启就是中文的界面了

在这里插入图片描述

4.2 安装 C/C++ 扩展包

在这里插入图片描述

选择“C/C++ Extension Pack”,它是 VS Code 官方推荐的工具包,包含了开发 C/C++ 所需要的多个扩展。

在这里插入图片描述

09. Visual Studio Code测试(单文件)

9.1 创建工程目录

VSCode 是一款基于文件夹进行代码编辑和管理的编辑器,通常我们会把新建一个文件夹来管理同一个项目的代码,并在 VSCode 中打开。

我新建了一个名为WorkSpace的文件夹,并在里面新建了一个用于专门放 C 语言代码的文件夹。

在这里插入图片描述

需要注意的是,这个路径最好不要存在中文,否则会出现编译失败等问题。

9.2 打开 VSCode,点击打开文件夹的按钮。

在这里插入图片描述

9.3 在弹窗中找到刚刚新建的C文件夹,选中文件夹,再点选择文件夹

在这里插入图片描述

9.4 选中文件夹后,在新弹出的窗口中,勾选上信任父文件夹"Documents"中所有文件的作者,再点是,我信任此作者

9.5 文件添加好后,在左边的资源管理器中会出现CODE文件夹以及子文件夹C,把鼠标放在文件夹上面,会出现四个小图标。四个小图标从左往右的作用分别是新建文件新建文件夹刷新资源管理器以及在资源管理器中折叠文件夹

在这里插入图片描述

做到这一步,接下来就可以进行代码的运行和调试了。

9.6 为了方便管理代码,我们先选中C文件夹,再点击新建文件夹按钮。

在这里插入图片描述

9.7 此时会在C文件夹的下级出现一个输入框,我们新建一个名为test的文件夹。

在这里插入图片描述

9.8 鼠标右键test文件夹,在弹出的菜单中选择新建文件

在这里插入图片描述

9.9 在输入框中输入我们接下来要进行调试代码文件名,命名为test.c,注意,一定要是 .c 结尾。

在这里插入图片描述

9.10 接下来就可以输入一个调试程序了,保存到test.c文件中,我的代码如下:

#include <stdio.h>


int main(void)
{
    for(int i = 0; i < 10; i++)
    {
        printf("Hello World\n");
    }

    return 0;
}

9.11 写好测试代码后,点击右上角的调试按钮,这时会弹出调试程序的选项,选择第一个,也是本教程前面安装的 gcc 编译工具。

在这里插入图片描述

9.12 运行结果如图所示。

在这里插入图片描述

9.13 如果要进行简单的断点调试,可以在行号前加一个断点,操作也很简单,只需用鼠标左键点一下行号左边的空白处即可。如下图所示,是在第8行处加了一个断点。

在这里插入图片描述

9.14 这时再去运行程序,搜索框下面就会出现调试的面板,面板上有六个按钮,分别是继续逐过程单步调试单步跳出重启停止

在这里插入图片描述

说明:

以下是 VS Code 中的 C 语言代码调试面板功能的解释:

(1) 继续(Continue):继续执行程序,直到遇到下一个断点或程序结束。
(2) 逐过程(Step Over):逐行执行当前行,如果当前行是函数调用,则进入该函数并执行完毕。
(3) 单步调试(Step Into):逐行执行当前行,如果当前行是函数调用,则进入该函数并停在函数内的第一行。
(4) 单步跳出(Step Out):执行完当前函数的剩余部分,并停在当前函数被调用的下一行。
(5) 重启(Restart):重新启动程序的调试会话,即从程序的起点开始执行。
(6) 停止(Stop):停止程序的调试会话,结束调试过程并关闭程序执行。

10. Visual Studio Code测试(多文件)

如果想要进行多个 .c 文件编译后的调试,就需要进行一些配置修改。如果进行过一次编译运行,我们会发现在资源管理器的C文件夹下,多出一个.vscode的文件夹,这个文件夹里面有个tasks.json的文件

10.1 文件夹里面有个tasks.json的文件

在这里插入图片描述

这个文件是用于定义任务配置,这些任务可以在 VS Code 中运行,例如编译代码、运行测试、启动调试器等。tasks.json文件是一个 JSON 格式的文件,其中包含了任务的配置信息,包括任务名称、命令、参数等。通过编辑tasks.json文件,我们可以自定义项目中的各种任务,并在 VS Code 中方便地执行这些任务。

当前的 VS Code 的运行效果还不是很理想,双击打开tasks.json文件修改一下编译运行功能。下图是对该 JSON 文件做了部分解释。

在这里插入图片描述

10.2 修改tasks.json文件

具体修改如下图所示,我注释掉了原来的" f i l e " ,并新增一行 " ∗ . c " ,表示并非指定某一个 . c 文件,而是当前文件夹下所有的 . c 文件。同时也把 " {file}",并新增一行"*.c",表示并非指定某一个 .c 文件,而是当前文件夹下所有的 .c 文件。同时也把" file",并新增一行".c",表示并非指定某一个.c文件,而是当前文件夹下所有的.c文件。同时也把"{fileDirname}\ f i l e B a s e n a m e N o E x t e n s i o n . e x e " 注释掉,改成 " {fileBasenameNoExtension}.exe"注释掉,改成" fileBasenameNoExtension.exe"注释掉,改成"{fileDirname}\program.exe",那么多个 .c 文件编译之后的可执行文件就是program.exe。

在这里插入图片描述

修改好后,按组合键Ctrl + s保存即可。

10.3 然后点击左侧的运行与调试,再点击创建launch.json文件

在这里插入图片描述

10.4 搜索框会弹出选项,选择C++(GDB/LLDB)

在这里插入图片描述

10.5 然后 VS Code 会新建一个 JSON 文件,点击右下角的添加配置,在弹出的下拉菜单中选择C/C++:(gdb)启动

在这里插入图片描述

10.6 此时,JSON 文件会多出一些配置信息,需要我们修改的内容如下图所示的红框标志内容。

在这里插入图片描述

10.7 修改为下图红框所示内容,“program”后的内容就是前面提到的tasks.json文件中的编译后产生的可执行文件。"miDebuggerPath"后面的则是前面安装的 MinGW-W64 的 gdb 工具的路径。修改后保持关闭。

在这里插入图片描述

在复制粘贴 gdb 的路径时,不少小伙伴会忽略掉下图所示的问题。反斜杠是转义字符的作用,应该像上图一样多加一个一个反斜杠才表示路径。

10.8 我们进行多文件的编译调试,先在C文件夹下新建一个新的文件夹,我这里命名为test2,并在这个文件夹里面新建三个文件,分别是test.cmax.hmax.c

在这里插入图片描述

10.9 代码如下

max.h

#ifndef __MAX_H__
#define __MAX_H__
#include <stdio.h>

int findMaxNum(int num1, int num2);

#endif // __MAX_H__

max.c

#include "max.h"

int findMaxNum(int num1, int num2)
{
    return num1 > num2 ? num1 : num2;
}

test.c

#include <stdio.h>
#include "max.h"

int main()
{
    int a = 10;
    int b = 20;
    int c = findMaxNum(a, b);
    printf("%d\n", c);
    return 0;
}

10.10 代码写好后,给test.c的第 8 行代码打一个断点,再点调试按钮旁边的小三角形,在下拉菜单中选择调试C/C++文件

10.11 调试面板依旧是之前的那个。如果点击继续,调试过程会跳到下一个断点,不过我们这个程序只打了一个断点,所以会直接运行到程序结束并退出调试。

在这里插入图片描述

如果点击单步调试,则会进入被调用函数的内部,继续点击单步调试会一步一步执行并返回。如果进入函数后,点击单步跳出则直接带着函数的执行结果返回被调用处。

在这里插入图片描述

11. 讨论

tasks.json文件描述

参数名功能
type编译环境类型。
label当前任务名,可自行设置。
args编译选项,包括所的编译文件、保存编译文件的目录等。
command编译器所在的绝对路径。
options-cwd编译器所在目录

此文件主要是告知VScode如何构建(编译)源代码,用于编译设置。

打开方法:在命令面板输入tasks,选择如下如下红色矩形部分,即可打开task.json文件。

launch.json文件描述

此文件主要主要是告知VScode如何调试程序,用于自定义调试。

打开方法:命令面板输入launch.json可打开launch.json文件。

在这里插入图片描述

c_cpp_properties.json文件

此文件用于配置编译器、头文件路径、C\C++标准(默认C\C++17)等。

打开方法:进入命令面板(Ctrl + Shift + P),输入:edit,如下:

在这里插入图片描述

顶层属性

参数名功能
env用户自定义变量
configuration定义编译器、头文件、C\C++标准
versionc_cpp_properties.json文件版本,不可修改。

configuration属性

参数名功能
compilerPath编译器的完整路径
intelliSenseMode指定intelliSense的模式
includePath指定包含头文件的目录
cStandard指定C语言标准的版本
cppStandard指定C++语言标准的版本

预定义变量(Predefined variables)说明

${userHome} - 计算机用户文件夹路径
${workspaceFolder} - VScode中打开的文件夹路径
${workspaceFolderBasename} - 在VScode中打开的文件夹名称
${file} - 当前打开的文件
${fileWorkspaceFolder} - 当前打开文件的工作空间文件夹
${relativeFile} - 相对于workspaceFolder的当前打开文件
${relativeFileDirname} - 当前打开的文件相对于工作空间的目录名
${fileBasename} - 当前打开文件名
${fileBasenameNoExtension} - 当前打开文件的基本名称,不包括文件扩展名
${fileDirname} - 当前打开文件的路径
${fileExtname} - 当前打开文件的扩展名
${cwd} - 启动VScode时,任务运行期的当前工作目录
${lineNumber} - 当前选定活动文件中的行数
${selectedText} - 当前活动文件选择的文本
${execPath} - 正在运行VScode可执行文件的路径
${defaultBuildTask} - 默认构建任务的名称
${pathSeparator} - 操作系统用来分隔文件路径中的组件的字符
${env:Name} - 计算机的环境变量

示例:

当前被打开的文件路径:/home/your-username/your-project/folder/file.c

工作空间根目录:/home/your-username/your-projec

预定义变量对应值如下:

${userHome} -/home/your-username
${workspaceFolder} -/home/your-username/your-project
${workspaceFolderBasename} -your-project
${file} -/home/your-username/your-project/folder/file.c
${fileWorkspaceFolder} -/home/your-username/your-project
${relativeFile} -folder/file.c
${relativeFileDirname} -folder
${fileBasename} -file.c
${fileBasenameNoExtension} -file
${fileDirname} -/home/your-username/your-project/folder
${fileExtname} -.c
${lineNumber} - 光标的行号
${selectedText} - 在代码编辑器中选择的文本
${execPath} - Code.exe 的位置
${pathSeparator} -/在 macOS 或 linux 上,\在 Windows 上

12. 附录

参考:Visual Studio Code documentation

参考:https://www.mingw-w64.org/

参考:Visual Studio Code on Windows

参考:C/C++ for Visual Studio Code

参考:Using GCC with MinGW

参考:VS Code 配置 C/C++ 编程运行环境(保姆级教程)

参考:VS Code 配置C语言开发环境

下载:WinLibs standalone build of GCC and MinGW-w64 for Windows

下载:mingw64.zip

### 关于 VS Code 中 C/C++ 工具包文件缺失问题 在开发环境中遇到工具链配置错误或依赖项丢失的情况并不少见。对于 VS Code 的 CPPTools 插件中的 `package` 文件缺失问题,以下是可能的原因以及解决方案。 #### 可能原因分析 CPPTools 插件的核心功能依赖于多个组件和库的支持。如果某些必要的 `.class` 或其他资源文件未被正确加载,则可能导致运行时异常或其他错误提示。例如,在 Java 环境下可能出现类找不到的错误[^1];而在 Android 构建过程中也可能因路径解析失败而抛出类似异常[^2]。这些情况表明环境变量设置不当或者项目所需的外部依赖未能成功下载安装。 针对 MySQL 权限刷新命令执行成功的案例说明服务器端已具备正常操作权限[^3],但这并不直接影响本地 IDE 配置状态。因此需重点排查以下方面: - **扩展版本冲突**: 如果当前使用的 Microsoft 提供之 C/C++ 扩展并非最新稳定版,可能存在内部逻辑缺陷。 - **网络连接受限**: 下载远程仓库内的必要数据集(如 IntelliSense 数据模型)受阻会引发此类现象。 - **缓存损坏**: 前次不完全卸载遗留下来的残留记录干扰新实例初始化过程。 #### 解决方案建议 ##### 方法一:更新至最新版本 确认所应用的是官方发布的最新型号,并重启应用程序以激活更改效果。 ```bash code --install-extension ms-vscode.cpptools ``` ##### 方法二:清除现有缓存重新构建索引 通过删除用户目录下的隐藏子文件夹来强制重置全部预设参数。 > Windows 平台路径示例: `%USERPROFILE%\.vscode\extensions` > > macOS/Linux 对应位置分别为 ~/Library/Application Support/Code/User/globalStorage 和 ~/.config/Code/User/ 随后再次启动编辑器完成自动同步流程即可恢复正常运作模式。 ##### 方法三:手动指定 MinGW/GCC 路径 当目标平台选用特定编译体系而非默认选项时,务必显式声明关联关系以便顺利调用底层 API 接口函数实现预期目的。 ```jsonc // settings.json configuration snippet { "C_Cpp.intelliSenseEngine": "Tag Parser", "C_Cpp.default.compilerPath": "/usr/bin/gcc" } ``` 以上调整均有助于缓解乃至彻底消除上述提及的技术难题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一笑-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值