MinGW-w64最新版本安装教程与实用指南

MinGW-w64安装与C++20支持指南

前言

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

MinGW-w64下载与安装步骤

首先,我们需要下载最新的mingw-w64安装包:

https://pan.quark.cn/s/d81a723b8a56

接下来是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的过程中,可能会遇到一些常见问题。我来分享一下我的解决经验:

  1. 如果运行gcc命令提示"不是内部或外部命令",99%是环境变量没有设置正确。检查你的Path变量是否包含了正确的mingw64\bin路径,路径中是否有多余的空格或引号等问题。

  2. 有些IDE可能默认找不到编译器,这时候需要在IDE设置中手动指定MinGW的路径。比如VS Code中,你可能需要修改c_cpp_properties.json文件中的"compilerPath"设置。

  3. 如果你的项目依赖某些特定的库,可能需要通过MinGW的包管理器MSYS2来安装额外的库。这是另一个话题了,有需要可以单独讨论。

希望我的这份mingw安装教程能帮到你!祝你编程愉快!

C++20新特性与MinGW兼容性指南

使用了最新版本的mingw-w64后,我发现它对C++20的支持非常好,这里简单介绍几个我最喜欢的C++20新特性:

  1. Ranges库:正如我上面的示例所展示的,Ranges库提供了更直观的容器操作方式,不再需要传递迭代器,代码可读性大大提升。

  2. 概念(Concepts):可以对模板参数设定约束条件,大大提高了编译错误消息的可读性,使得泛型编程更加友好。

  3. 模块系统:替代了传统的头文件包含机制,可以显著提高编译速度。不过需要注意,目前MinGW对模块的支持还不是很完善,使用时可能会遇到一些问题。

  4. 协程(Coroutines):简化异步编程,但在使用MinGW时可能需要添加额外的编译标志。

如果你刚开始学习C++,我建议直接从C++17或C++20开始,使用最新版本的mingw64,这样可以避免学习过时的特性,直接上手现代C++的开发方式。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值