蒟蒻第一次发博客,轻喷~
我在安装 VScode 的时候可谓历经磨难,所以就萌生出写这篇文章的想法。
Windows 下用 MinGW-64 配置 VScode 的 C/C++ 环境
一、下载 MinGW-w64 并添加到环境变量
MinGW 的全称是:Minimalist GNU on Windows ,就是 GCC 的 Windows 版本 。MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。
有两种下载 MinGW-w64 的方法——在 SourceForge 下载或用 MSYS2 下载。
1. 在 SourceForge 下载
SourceForge 是全球最大开源软件开发平台和仓库,网站建立的宗旨,就是为开源软件提供一个存储、协作和发布的平台。SourceForge 上拥有大量非常优秀的开源软件,事实上,这些软件完全可以代替一些商业软件。
可以直接在 SourceForge 上存储的 MinGW-w64 的二进制文件 里下载编译好的 MinGW-w64 。
注意:要滑到下面下载 MinGW-W64 GCC-X.X.X ,不建议下载 MinGW-W64 Online Installer ,因为它几乎下载不下来 MinGW-w64 。
每个 MinGW-W64 GCC-X.X.X 下都有很多版本,这里是它们的区别。
2. 用 MSYS2 下载
MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从"MinGW-生成")基础上产生的,追求更好的互操作性的 Windows 软件。
可以看到,在 SourceForge 上的 MinGW-w64 的最高版本只是 8.1.0 ,然而 GCC 12.2 都已经发布了,那有没有办法下载到最新版的 MinGW-w64 ?答案是肯定的,那就是用 MSYS2 下载 MinGW-w64 。
安装 MSYS2
有两种方法:
-
在 MSYS2 官网 下载安装包。
-
在 distrib目录中 (其清华大学开源软件镜像)下载免安装版(即“msys2-i686-latest.tar.xz”或“msys2-x86_64-latest.tar.xz”)。
下载 MinGW-w64
安装完成后,找到安装文件夹下的 msys2.exe ,双击它就可以打开 MSYS Shell 。
-
如果为32位,键入
pacman -S mingw-w64-i686-gcc mingw-w64-i686-gdb mingw-w64-i686-make
。 -
如果为64位,键入
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make
。
然后等待其下载完成即可。
关于pacman的一些常用命令:
-
输入
pacman -Sl
,可以列出msys2官方库中的的所有软件 -
输入
pacman -Q
,可以列出当前安装的所有软件 -
输入
pacman -S 软件名
,可以安装相应的软件 -
输入
pacman -R 软件名
,可以移除相关的软件 -
输入
pacman -Syu
,可以升级所有的软件
3. 把 MinGW-w64 添加进环境变量
在桌面右键“此电脑”,点击“属性”,进入“控制面板/所有控制面板项/系统”,点击“高级系统设置”进入“系统属性/高级”,点击进入“环境变量”,选择“系统变量/Path”,再点击“编辑”打开“编辑环境变量”窗口,点击“新建”,键入 放MinGW-w64的文件夹\bin
(比如F:\mingw64\bin
,F:\msys2-x86_64-latest\msys64\mingw64\bin
)。
按“Win + R”打开”运行“窗口,键入cmd
打开 命令提示符 ,然后键入gcc -v
。如果输出的是一大串配置文本和版本号就配置成功了。
二、安装并配置 VScode
1. 安装 VScode
在 VScode 官网下载安装包并安装即可。
这么简单的事情应该不需要我多说吧(
2. 安装扩展
适用于 VS Code 的中文(简体)语言包
C/C++ 智能感知、调试和代码浏览。
3. 配置工作文件夹
先新建一个文件夹当做工作文件夹,然后打开 VScode ,点击“文件/打开文件夹”,然后打开 工作文件夹 ,然后 VScode 就会弹出“是否信任此文件夹中的文件的作者?”,点击“信任文件夹并继续”。
选择左侧“资源管理器”中自己创建的工作文件夹,点击“新建文件夹”,命名为.vscode
。
然后新建一个.cpp
文件,随便写点代码:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello VScode!" << endl;
system("pause");//要加system("pause")防止一运行完就退出
return 0;
}
然后点击“运行/启动调试”(或按F5),在弹出的“选择配置”窗口中选择调试器“C++ (GDB/LLDB)”,再点击“C/C++: g++.exe 生成和调试活动文件”,.vscode
文件夹里会生成一个tasks.json
,如下:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "F:\\msys2-x86_64-latest\\msys64\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
注意:"command"
的值要换成自己g++.exe
的地址
然后 VScode 就会开始编译,最后在下方的“终端”运行(不是“调试控制台”)。
如何让程序弹出新的黑色窗口并在里面运行运行?
在最左侧点击“运行和调试”,点击“创建 launch.json 文件”,在弹出的“选择调试器”中点击“C++ (GDB/LLDB)”,.vscode
文件夹里会生成一个launch.json
,如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
然后我们在"configura"
中填加配置文本,使其变成这样:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"cwd": "${workspaceFolder}",
"externalConsole": true,
"preLaunchTask": "C/C++: g++.exe 生成活动文件"
}
]
}
再点击“运行/启动调试”(或按F5),就可以发现程序是在新弹出的黑色窗口中运行。
注意:launch.json
里"preLaunchTask"
的值要和tasks.json
里"label"
的值一致