参考

VSCode配置c/c++环境-01-DevC++配置MinGW-w64 8.1.0 编译器
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统—保姆级教程

引言+劝退

VSCode,全称为Visual Studio Code,是由微软开发的一款轻量级,跨平台的代码编辑器。
如果你是刚刚接触编程或是使用计算机并不熟练,我强烈建议:

不要碰VSCode!!!
不要碰VSCode!!!
不要碰VSCode!!!

VSCode的环境配置和文件操作相比于直接下载集成开发环境,对于初学者实在是一种灾难。
要学习C/C++,可以去下一个Visual Studio,如果嫌占内存太大,不写什么大工程,可以去下一个Dev-C++
要写Java,去找IntelliJ IDEA
要写python,去找pycharm

总之,初学者建议先熟悉下计算机和编程再来搞VSCode,当初还是小白的我弄了个VSCode的就开始配环境,后期一大堆非程序问题搞得不得不下个集成的环境再学。

那么现在就开始学习如何在VSCode上写C/C++代码

VSCode环境准备

在这里插入图片描述

下载安装

下载vscode直接去搜就可以,
下载链接:Visual Studio Code - Code Editing. Redefined
在这里插入图片描述

下载安装的步骤比较简单,双击下一步就好

安装中文插件

ctrl+shift+x打开拓展,或是单击左侧侧边栏的拓展 ,输入chinese搜索 中文拓展插件,安装后重启,即变为中文界面了。
在这里插入图片描述

安装C/C++插件

在这里插入图片描述

电脑安装MinGW

下载MinGW

VSCode是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须要有编译器。为了方便,我们使用MinGW-w64,MinGW-w64是移植到windows平台的一个gcc编译器,用起来很方便。

编译器下载地址-x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

下载MinGW-w64的话,下面是下载地址
MinGW编译后的可执行下载地址
在这里插入图片描述

进入后,选择下载的版本
在这里插入图片描述

下载后的文件如下
在这里插入图片描述

x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z 安装与配置(Windows 版)

这个压缩包是预编译好的 MinGW-w64 可执行版本,下面进行安装过程

一、前置准备

  1. 解压工具.7z 格式需要用 7-Zip 解压(Windows 自带解压工具打不开),先安装 7-Zip(免费,下一步安装即可);
  2. 路径要求:解压路径必须无中文、无空格、无特殊符号(推荐:D:\mingw64,绝对不要选 D:\编程工具\mingw64C:\Program Files\mingw64)。

二、步骤1:解压 .7z 压缩包

  1. 安装 7-Zip 后,右键点击 x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z,选择「7-Zip」→「解压到…」;

  2. 在弹出的窗口中,选择解压路径为 D:\mingw64(直接输入路径,避免手动选带中文的文件夹),点击「确定」;
    在这里插入图片描述

  3. 解压完成后,进入 D:\mingw64 目录,确认存在 binincludelib 等文件夹,且 bin 里有 gcc.exeg++.exe(这是核心,有则解压正确)。
    4.在这里插入图片描述

三、步骤2:配置系统环境变量(关键)

环境变量的作用是让 Windows 任意目录能找到编译器,操作和之前一致,这里再细化:

Windows 10/11 配置步骤
  1. 右键「此电脑」→「属性」→ 右侧「高级系统设置」→「环境变量」;

  2. 在「系统变量」列表中找到 Path 变量,双击打开;

  3. 点击「新建」,粘贴 D:\mingw64\bin(你的解压路径 + bin);
    在这里插入图片描述

  4. 调整优先级:选中刚添加的 D:\mingw64\bin,点击「上移」按钮,把它移到 Path 列表最顶部(避免旧版 MinGW 覆盖,如果安装过Dev C++的,有旧版MinGW );

  5. 点击「确定」保存(所有弹窗都点「确定」,不要直接关闭)。

四、步骤3:验证配置是否成功

  1. 重启命令提示符:关闭所有已打开的 cmd 窗口,重新按 Win + R 输入 cmd 打开新窗口(环境变量需重启 cmd 才生效);
  2. 依次执行以下命令,验证版本(无报错且显示对应版本即为成功):
# 检查C编译器版本(核心,需显示 8.1.0)
gcc --version
# 检查C++编译器版本
g++ --version
# 检查make工具版本(可选)
mingw32-make --version

在这里插入图片描述

MinGW-w64 8.1.0适配 VS Code

创建一个不包含中文的路径 D:\c++vscode

D:\c++vscode是我们后期的存放代码的地方,如果文件夹中的路径有中文名的,后续可能会有一系列问题,就比如调试莫名报错之类。

用vscode打开目录

在这里插入图片描述

在目录下新建一天test.c文件
在这里插入图片描述

在.vscode目录下生成 c_cpp_properties.json

在中间搜索框打>,然后找C/C++编译配置,也可以选择 查看-命令面板 找C/C++编译配置
在这里插入图片描述

配置编译器路径,如果是C++项目就选择g++。C项目就选gcc。windows-gcc-x64:是新版插件的标准化命名,格式为 {平台}-{编译器}-{架构},清晰直观,避免跨平台歧义,也是官方现在推荐的选择。

在这里插入图片描述

这时生成了c_cpp_properties.json,内容如下:
在这里插入图片描述

也可以直接修改c_cpp_properties.json文件,配置C和C++的编译器

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

这份c_cpp_properties.json其实也不用自己创建,把我的直接复制粘贴过去也行 ,这个对C/C++都适用

在.vscode目录下创建 tasks.json

这时我们来创建第二个文件tasks.json

打开test.c文件

在代码文件下选择终端里的配置任务
在这里插入图片描述
选择C/C++:gcc.exe生成活动文件
在这里插入图片描述

打开test.cpp文件

新建test.cpp文件

#include <iostream>

using namespace std;

int main()
{
    int a = 10;
    int b = a / 0;
    return 0;
}

选择终端–配置任务-选择C/C++:gcc.exe生成活动文件
在这里插入图片描述
生成新的
在这里插入图片描述

在做出选择之后,第二个文件就配置完毕了,现在我们来编译一下代码

在终端中选择运行gcc生成任务

选择test.c–选择终端–选择执行任务–c语言选择gcc.exe–终端会自动编译–生成test.exe文件
在这里插入图片描述

终端–新建终端–执行
在这里插入图片描述

在终端中选择运行g++生成任务

打开test.cpp文件

#include <iostream>

using namespace std;

int main()
{
    int a = 10;
    //int b = a / 0;
    cout << "Hello World" << endl;
    return 0;
}

选择test.c–选择终端–选择执行任务–c++语言选择g++.exe–终端会自动编译–生成test.exe文件
在这里插入图片描述

终端执行test.exe输出如下
在这里插入图片描述

编译多个文件代码

修改tasks.json文件

这里需要改一下.vscode中tasks.json文件的一些内容
图中我标了注释的地方就是需要改动的地方,然后这是改动后的文件
在这里插入图片描述

tasks.json的内容如下:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++.exe 生成活动文件",
			"command": "D:\\mingw64\\bin\\g++.exe",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				//${file} 是当前活动文件的路径 替换如下
				"${workspaceFolder}/*.cpp",//workspaceFolder 是当前工作空间的路径
				"${workspaceFolder}/*.c",//workspaceFolder 是当前工作空间的路径				
				"-o",
				// 输出可执行文件路径  也可指定main.exe等 图片有误
				// "${fileDirname}\\${fileBasenameNoExtension}.exe"
				"${workspaceFolder}\\${workspaceRootFolderName}.exe"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: D:\\mingw64\\bin\\g++.exe"
		}
	]
}
修改test.cpp文件
//test.cpp
#include<iostream>
#include"add.h"
using namespace std;
int main()
{
    int a = 10;
    int b = 15;
    int c = Add(a,b);
    cout << a<< " " << b << endl;
    cout << c;
    return 0;
}
创建add.h文件
//add.h
#pragma
int Add(int x,int y);
创建add.cpp文件
//add.cpp
#include"add.h"
int Add(int x,int y)
{
    return x + y;
}
编译多个文件生成exe文件

最后编译器将文件夹所有文件都编译链接生成一个以文件夹命名的 .exe 文件

打开test.cpp–选择终端–选择运行任务–选择g++生成活动文件
在这里插入图片描述

命令行运行生成的exe文件
在这里插入图片描述

运行代码或C/C++文件

这个代码,也可以通过
在这里插入图片描述

VSCode调试代码

调试这里另外需要一个文件,launch.json文件
在这里插入图片描述

点击之后会弹出一个窗口选择,这里我们一定要选择C++(GDB/LLDB),这时就会生成一个launch.json文件,这时候文件里几乎什么都没有,我们点击右下角的添加配置
在这里插入图片描述
选择第三个gdb启动,生成的launch.json文件如下

在这里插入图片描述修改的内容如下

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            //program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
            "program": "${workspaceFolder}/${workspaceRootFolderName}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            //"miDebuggerPath": "/path/to/gdb",
            "miDebuggerPath": "D:/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

调试运行
修改之后,在代码里设置断点,进行编译,生成一份c++vscode.exe之后就可以开始调试
此时我们就可以直接按 F5 开始调试,F9打断点,F10逐过程(遇到函数当成一条语句跳过),F11逐语句(遇到函数跳转到函数内部按语句一步步走)
在这里插入图片描述

更多推荐