前言
嘿,朋友们!今天想跟大家分享一下我安装mingw-w64的亲身经历。最近在折腾VS Code的C++开发环境,发现网上很多教程推荐的mingw64安装包都是老版本,支持不了C++20这些新特性。作为一个追求新技术的开发者,我决定搞一个最新版本的mingw-w64下载安装过程记录下来,希望能帮到正在寻找mingw安装教程的你!

MinGW-w64下载与安装步骤
首先,我们需要下载最新的mingw-w64安装包:
接下来是mingw安装的详细步骤:
① 下载完安装包后,不需要运行什么安装程序,直接解压就行了!我选择解压到C盘的Program Files目录,当然你也可以选择自己喜欢的任何位置。

② 解压后会看到一个名为mingw64的文件夹,进去后你会发现里面有个bin目录:

③ 进入bin目录,然后复制这个路径。在我的电脑上是:C:\Program Files\mingw64\bin。这个路径等下要用到。
④ 现在最关键的一步来了!我们需要把这个路径添加到系统环境变量中。在Windows 11上我直接在搜索栏输入"环境变量",然后点击"编辑系统环境变量":

⑤ 点击"环境变量"按钮:

⑥ 在"系统变量"区域找到"Path",双击它或选择"编辑":

⑦ 点击"新建"按钮,粘贴我们刚才复制的bin目录路径,然后一路确定保存:

就这样,mingw-w64安装完成了!说实话,比我想象的简单多了,就是解压+添加环境变量,没有复杂的安装向导。
验证安装是否成功
我喜欢确认一下安装是否真的成功,所以打开了命令提示符,输入:
gcc --version
看到输出的gcc版本是14.2.0,这确实是目前较新的版本,心里顿时有点小满足:

但仅仅看到版本号还不够,我想测试一下它是否真的支持C++20的新特性。于是我打开VS Code,写了个简单的程序测试std::ranges功能:
#include <iostream>
#include <vector>
#include <ranges>
int main() {
std::vector<int> nums = {10, 20, 30, 40, 50};
auto it = std::ranges::find(nums, 30);
if (it != nums.end()) {
std::cout << "Found: " << *it << std::endl;
} else {
std::cout << "Not found!" << std::endl;
}
return 0;
}
我还创建了一个CMakeLists.txt文件指定使用C++20标准:
cmake_minimum_required(VERSION 3.5)
project(testcode)
set(CMAKE_CXX_STANDARD 20)
add_executable(test_ranges test_ranges.cpp)
最后在命令行运行,程序顺利编译并执行:

完美!现在我的电脑上有了支持最新C++标准的mingw64编译器,可以开始享受现代C++带来的便利了!
C++开发环境常见问题解决
在使用MinGW-w64的过程中,可能会遇到一些常见问题。我来分享一下我的解决经验:
-
如果运行gcc命令提示"不是内部或外部命令",99%是环境变量没有设置正确。检查你的Path变量是否包含了正确的mingw64\bin路径,路径中是否有多余的空格或引号等问题。
-
有些IDE可能默认找不到编译器,这时候需要在IDE设置中手动指定MinGW的路径。比如VS Code中,你可能需要修改c_cpp_properties.json文件中的"compilerPath"设置。
-
如果你的项目依赖某些特定的库,可能需要通过MinGW的包管理器MSYS2来安装额外的库。这是另一个话题了,有需要可以单独讨论。
希望我的这份mingw安装教程能帮到你!祝你编程愉快!
C++20新特性与MinGW兼容性指南
使用了最新版本的mingw-w64后,我发现它对C++20的支持非常好,这里简单介绍几个我最喜欢的C++20新特性:
-
Ranges库:正如我上面的示例所展示的,Ranges库提供了更直观的容器操作方式,不再需要传递迭代器,代码可读性大大提升。
-
概念(Concepts):可以对模板参数设定约束条件,大大提高了编译错误消息的可读性,使得泛型编程更加友好。
-
模块系统:替代了传统的头文件包含机制,可以显著提高编译速度。不过需要注意,目前MinGW对模块的支持还不是很完善,使用时可能会遇到一些问题。
-
协程(Coroutines):简化异步编程,但在使用MinGW时可能需要添加额外的编译标志。
如果你刚开始学习C++,我建议直接从C++17或C++20开始,使用最新版本的mingw64,这样可以避免学习过时的特性,直接上手现代C++的开发方式。
MinGW-w64安装与C++20支持指南
5761

被折叠的 条评论
为什么被折叠?



