简述一下步骤哈:
- 下载VsCode(这点大家都会哈)
- 下载MingG64(C/C++编译器【gcc】),配置环境变量
- 在VsCode配置一下C/C++运行时环境
- 测试运行
1、准备MingG64
VsCode 本身是没有C/C++编译的,这里我们自己去下载一个MingG64 就可以了。
下载地址页面:MingG64
在这个页面选择你想要的MingG64版本进行下载,能玩新的就玩新的哈,不然没劲哈。
我们选择的是这个x86_64-posix-seh
,下载下来就是个7z的压缩包哈,无需安装的。

下载完,解压到自己想要放置的目录中去。
目录结构:

2、配置MingG64环境变量
这个蛮简单的哈。
先复制我们之前MingG64放置的路径位置,一直到bin路径哈。
如我的就是:D:\computeSoft\cpp\mingw64\bin
鼠标右键点击我的电脑-->点击 高级系统配置-->点击 环境变量点击新建将你的复制好的路径粘贴进去即可。
测试是否安装好
我们按下 win+r ,输入cmd,来命令行,输入gcc --version
进行测试。弹出这样的就是配置成功了。
3、VsCode配置C/C++开发环境
3.1、安装C/C++扩展
创建一个空文件夹,确保这个文件夹所在的文件路径没有中文字符哈,不然会报错的。
然后我们用VsCode打开。
安装一下这个哈。
安装完成之后,直接在VsCode中按 ctrl+shift+p
快捷键
出现以下界面: 直接搜索C/C++即可,我是因为已经搜过了。
搜到后点进去:这里附属一张中文翻译版本截图
3.2、修改生成的Json配置文件
用VsCode 打开这个空文件夹,新建一个test.cpp文件哈。
#include <stdio.h>
#include <windows.h>
int main()
{
printf("Hello\n");
system("pause"); // 保持窗口不被关闭哈 这个固定的方法我还没找到 只能先这么写了
return 0;
}

打开launch.json文件,再次点击run--> add Configuration

之后我直接放图哈。点击运行-->以非调试模式运行。
点击后,弹出如下弹窗选项:

附属上其他的人VsCode会默认生成一个
.vscode
文件夹:
平常在文章中看到的要编辑的json文件也就这两个了。
默认生成的文件如下:
c_cpp_properties.json
javascript
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
task.json
javascript
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
//C语言就改成gcc.exe,C++就改成g++.exe
"command": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
我们需要添加或修改的地方:
第一个,将launch.json
文件中第16行的externalConsole
属性修改为true,这样就能弹出窗口第二个:在
task.json
文件中的tasks
属性下的args
中增加两行属性:
"-fexec-charset=GBK", // 处理mingw中文编码问题
"-finput-charset=UTF-8",// 处理mingw中文编码问题
4、测试运行,直接按ctrl+F5
也能运行
javascript
#include <stdio.h>
#include <windows.h>
int main()
{
printf("Hello World!\n");
printf("很高兴,能够遇到你! \n");
system("pause");
return 0;
}
扩展:g++和gcc的区别
g++和gcc的区别:
1、对于不同后缀的文件当作程序不同。c后缀的文件,gcc把它当做是C程序;g++当做是C++程序 ;对于.cpp后缀的文件,gcc和g++都会当做c++程序。++gcc可以判断出目标程序所使用编程语言的类别,会把xx.c文件当做C语言编译,把xx.cpp文件当做C++语言编译。而g++只把xx.c和xx.cpp一律当做C++语言来编译++
2、编译阶段调用不同,g++会调用gcc。
3、连接阶段方式不同,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。
4、在编译C++文件时,g++会自动连接一些标准库或基础库,而gcc不会,当正在编译的C++代码文件依赖STL标准库时候,为了使用STL,gcc命令需要增加参数-lstdc++。因此虽然gcc和g++都可以编译C++ 语言,但是使用g++会更方便一些。
gcc/g++在执行编译工作的时候,总共需要4步:第一步预处理 ,生成.i的文件预处理器cpp。第二步将预处理后的文件转换成汇编语言,生成文件.s编译器egcs 。第三步有汇编变为目标代码(机器代码)生成.o的文件汇编器as。第四步连接目标代码,生成可执行程序链接器ld。
扩展: VSCode的Json配置
tasks.json
tasks.json 文件定义了 VSCode 中的构建任务。你可以配置 VSCode 在构建(编译)你的项目时应执行的操作。例如,使用 g++ 编译器编译 C++ 代码。
点击左上角...:终端:配置任务
点击:C/C++:g++.exe 生成活动文件
在.vscode文件夹自动创建了tasks.json,下面包含了完整解释:
javascript
{
// 配置文件版本
"version": "2.0.0",
"tasks": [
{
// 任务名称
"label": "C/C++: 使用 g++ 生成可执行文件",
// 任务类型
"type": "cppbuild",
// 编译器路径
"command": "g++.exe",
// 编译参数
"args": [
"-fdiagnostics-color=always", // 彩色输出
"-g", // 含调试信息
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
// 当前工作目录
"options": {
"cwd": "${fileDirname}"
},
// 错误匹配器
"problemMatcher": ["$gcc"],
// 构建任务组,设为默认
"group": {
"kind": "build",
"isDefault": true
},
// 附加信息
"detail": "由调试器自动生成的 C++ 编译任务"
}
]
}
launch.json
launch.json 文件定义了调试配置。你可以配置 VSCode 如何启动和调试你的应用程序,包括设置调试器路径、启动参数等。
点击左上角...:运行:添加配置
点击:C/C++(GDB/LLDB)
点击添加配置:{}C/C++: (gdb) Windows 上的 Bash 启动
在.vscode文件夹自动创建了launch.json,下面包含了完整解释:
javascript
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++: 使用 gdb 启动调试",
"type": "cppdbg",
"request": "launch",
// 设置为当前 .cpp 文件对应的可执行文件
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
// 推荐设置为 MinGW 的 gdb 完整路径(自动也可以)
"miDebuggerPath": "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++ 生成可执行文件"
}
]
}
c_cpp_properties.json
c_cpp_properties.json是一个配置文件,用于指定C/C++项目的编译器和头文件路径等相关设置。
按Ctrl+Shift+P调出命令面板
输入C/C++: Edit Configurations (UI)并选择它
使用此编辑器编辑在基础c_cpp_properties.json文件中定义的 IntelliSense 设置。在此编辑器中所做的更改仅适用于所选的配置。要一次编辑多个配置,请转到 c_cpp_properties.json
在.vscode文件夹自动创建了c_cpp_properties.json,下面包含了完整解释:
javascript
{
// 配置数组
// 包含所有代码配置的数组。
"configurations": [
{
// 配置名称
// 此配置的名称为"Win32"。
"name": "Win32",
// 包含路径
// 编译时要包含的路径,可以使用通配符。
"includePath": [
"${workspaceFolder}/**"
],
// 预处理器定义
// 编译时定义的预处理器宏。
"defines": [
"_DEBUG", // 调试模式
"UNICODE", // 使用 Unicode 字符集
"_UNICODE" // 使用 Unicode 字符集
],
// 编译器路径
// 指定编译器的路径。
"compilerPath": "D:\\CPPcode\\MinGW\\bin\\gcc.exe",
// C标准
// 指定要使用的C语言标准。
"cStandard": "c17",
// C++标准
// 指定要使用的C++语言标准。
"cppStandard": "gnu++17",
// IntelliSense 模式
// 指定IntelliSense的模式。
"intelliSenseMode": "windows-gcc-x64"
}
],
// 配置文件版本
// 此配置文件的版本。
"version": 4
}
问题:如果碰到:
launch: program 'D:\projectCpp\cProject\demoCPP01' does not exist这类报错的,按照如下修改

1、确认编译的是C还是C++
如果是C,就将task.json中的command中的改成gcc.exe

如果是C++,这里就改成g++.exe

launch.json如果非需要,可以不配置,否则不会重新编译,感觉launch.json这个文件会在task.json之前执行,但是program这个参数表示可执行的文件,还是必填,此时文件还未编译就找不到文件
参考:
1、VsCode 配置 C/C++ 开发环境,真的很简单-腾讯云开发者社区-腾讯云