MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)

MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)

MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)

MinGW-w64安装教程——C/C++编译器GCC的Windows版本

一、MinGW的定义

MinGW,全称是Minimalist GNU for Windows,即“适用于Windows的精简版GNU工具集”。它是一套面向Windows平台的开发工具套件,核心包含一系列GNU工具与库,能够支撑本地Windows应用程序的编译与构建工作。其核心目标是在Windows操作系统中,搭建起类似Unix/Linux环境的开发场景,让开发者无需切换系统,就能便捷地在Windows平台上编写、编译C语言、C++等程序。

二、MinGW的主要组件

  • MinGW的功能实现依赖于多个核心组件的协同作用,各组件职责明确,具体如下:
  • 1. GCC(GNU编译器集合)作为开源编译器套件的代表,GCC支持C、C++、Fortran等多种编程语言。在MinGW工具集中,GCC承担着核心的编译任务,负责将开发者编写的源代码转化为可在Windows平台运行的可执行文件,是连接源码与可运行程序的关键环节。
  • 2. Binutils(二进制工具集)这是一组专门用于处理二进制文件的工具集合,涵盖汇编器、链接器、目标文件处理器等核心工具。在MinGW的工作流程中,Binutils负责对编译后的源代码进行后续处理,最终完成可执行文件的生成,是程序构建过程中不可或缺的工具链。
  • 3. 运行时库(Runtime Libraries)MinGW内置了Windows环境下C语言与C++程序运行所需的运行时库,这类库在程序的编译与链接阶段发挥关键作用,为程序提供基础的运行支持,确保编译后的程序能在Windows系统中正常启动、运行。
  • 4. MSYS(精简型系统)MSYS是一个轻量级的类Unix环境,它在Windows系统中模拟了部分常用的Unix命令行工具,为开发者提供了更便捷的命令行操作体验,方便通过命令行完成程序的开发、构建与调试等一系列工作。

MinGW-w64 下载与安装(提供安装包)

📌 安装包:MinGW-w64 Download

官方网站:https://www.mingw-w64.org/

Release of 15.2.0-rt_v13-rev0 Latest GDB updated to 16.3 mcfgthread updated to 2.1-ga.1 MinGW-W64 updated to v13 python-3 updated to 3.12.11 openssl updated to 3.5.2 libffi updated to 3.5.2 binutils updated to 2.45

安装教程

先跟大家说下,这个 MinGW-w64 安装程序,其实就是个“下载器”,等下咱们设置好之后,它会按需下载对应的组件,再自动整理好。下载速度全看你网速,慢的话可能要等一会儿~双击 mingw-w64-install.exe 就行。

对了,要是打不开或者安装报错,右键点这个安装文件,选“以管理员身份运行”,重新开一次,大部分问题都能解决!

直接 next。

链接服务器,稍等就行。

进入安装界面后,能根据你要搭的开发环境选不同选项,这样就能精准下载需要的组件啦~

✅ 操作:找到 Version、Architecture、Threads、Exception、Build revision 这几个下拉列表,选对应的合适选项就行。后面会给大家详细讲每个选项该怎么选~

选择GCC版本:

先讲 Version 选项:这个其实就是 GCC 的版本,没特殊需求的话,直接选最高版本号就行,省心又好用~

✅ 对应操作:当前版本里最高的是 6.2.0,选中这个选项就OK啦!

架构选择:

🔹 再讲 Architecture 选项:这个是选电脑系统位数的,32位和64位要对应好选,别选错啦~

✅ 对应操作:我这台是64位系统,所以选 x86_64;要是你的电脑是32位系统,选 i686 就行~

OS 接口协议选择

接下来是 Threads 选项:世界上就俩主流系统类型,符合posix协议的(比如Linux、Unix、Mac OS)和Windows,选这个选项就对应好目标系统~

简单说:要开发Windows程序,选 win32 ;要开发其他系统(Linux、Unix、Mac OS等)的程序,就选 posix ~

✅ 对应操作:如果Windows下的程序,所以直接选 win32 啦!

环境变量设置

然后再 bin 目录里面就可以找到 g++.exe 或者 gcc.exe:

点击此电脑属性:

点击高级系统设置:

点击环境变量:

点击系统变量中新建一个环境变量,名字随意,里面是你的安装路径:

然后点击系统变量中的PATH环境变量,新建一个环境变量。

路径是安装目录下的 bin 目录路径,因为 gcc.exe 和 g++.exe 都在这里面:

你也可以这么设置路径,编辑环境变量:

检测是否安装成功

win+r 输入cmd,输入下面,出现则说明安装成功。

gcc -v gcc --version

MinGW的使用特点与跨平台优势

MinGW具备良好的兼容性,可与Visual Studio等其他开发工具集搭配使用,但它的核心优势在于“轻量化”与“便捷性”——无需依赖复杂的集成开发环境(IDE),就能快速搭建起Windows平台的开发环境。同时,其模拟Unix/Linux的开发场景,能让开发者更贴近标准开发环境,有效降低跨平台开发的门槛,方便开发者将Unix/Linux平台的程序迁移至Windows平台。

MinGW与MSYS2的区别

需要注意的是,MinGW与MSYS2是两个相互独立的项目,二者虽名称相近、核心目标相似(均为优化Windows平台的开发体验),但存在明显差异。MSYS2可看作是在MinGW基础上的升级与拓展,它新增了更先进的包管理系统,同时补充了部分额外工具,进一步提升了Windows平台下开发的便捷性与高效性。

MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)

Read more

【C++篇】C++11:线程库

【C++篇】C++11:线程库

文章目录 * 线程库(thread) * 一、 线程对象的构造方式 * 1. 无参构造 * 2. 带参构造 * 3. 移动构造 * 二、thread提供的成员函数 * 1. joinable的其他功能 * 2. 获取线程的id的方式 * 3. join和detach * 4. 线程函数参数(易错点) * 互斥锁(mutex) * 一、mutex的种类 * 1. std::mutex * 2. std::recursive_mutex * 3. std::timed_mutex * 4. std::recursive_timed_mutex * 二、lock_guard和unique_lock * 条件变量(condition_variable) * 一、

By Ne0inhk
【C++】第二十一节—一文详解 | 红黑树实现(规则+效率+结构+插入+查找+验证)

【C++】第二十一节—一文详解 | 红黑树实现(规则+效率+结构+插入+查找+验证)

Hi,我是云边有个稻草人......who?me,be like——→ 《C++》本篇文章所属专栏—持续更新中—欢迎订阅 目录 一、红黑树的概念 1.1 红黑树的规则 1.2 思考⼀下,红黑树如何确保最长路径不超过最短路径的2倍的? 1.3 红黑树的效率 二、红黑树的实现 2.1 红黑树的结构 2.2 红⿊树的插⼊ 【红⿊树树插⼊⼀个值的⼤概过程】 【情况1:变⾊】 【情况2:单旋+变⾊】 【情况2:双旋+变⾊】 2.3 红黑树的插入代码实现 2.4

By Ne0inhk
【C++高阶系列】:线程库和多线程

【C++高阶系列】:线程库和多线程

🔥 本文专栏:c++ 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 选择决定了方向,勇气决定了能走多远。没有勇气的选择是纸上蓝图,没有选择的勇气是迷失的航船。 ★★★ 本文前置知识: 线程(上) 线程(下) 引入 在上一篇文章中,我们详细介绍了在 Linux 平台下如何进行线程管理,包括线程的创建、等待与退出等操作。具体而言,主要是通过调用 Linux 原生 pthread 线程库提供的接口,例如 pthread_create 和pthread_join 等。 需要注意的是,pthread 线程库所提供的接口遵循 POSIX 标准,因此主要适用于 Linux 及其他类 Unix 系统,例如 Unix 和 macOS。然而,在 Windows

By Ne0inhk
【C++:C++11】C++11新特性深度解析:从可变参数模板到Lambda表达式

【C++:C++11】C++11新特性深度解析:从可变参数模板到Lambda表达式

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 🎬 艾莉丝的C++专栏简介: 文章目录 * C++学习阶段的三个参考文档 * 4 ~> 可变参数模版 * 4.5 emplace系列接口 * 4.5.1 不同容器emplace系列接口展示 * 4.5.2 浅谈emplace系列接口概念 * 4.5.3 emplace系列接口在list.h文件中的使用 * 4.5.4 emplace系列接口在Test.cpp文件中的使用 * 4.

By Ne0inhk