MinGW-W64 下载、安装与配置(支持最新版的GCC,目前 GCC 13.2.0)

文章目录

    • 一、简介
      • 1. MinGW 和 MinGW-W64 区别和联系
      • 2. MSVCRT 和 UCRT 介绍
    • 二、下载
      • 1. 从 sourceforge.net 下载
      • 2. 从 github 下载
      • 3. 从 镜像站点 下载
      • 4. 自己编译
    • 三、安装与配置
      • 1. 在线安装
      • 2. 离线安装
      • 3. 环境配置
    • 四、总结

一、简介

1. MinGW 和 MinGW-W64 区别和联系

MinGW和MinGW-W64都是用于Windows平台的轻量级GNU工具链,用于开发和编译C和C++程序。

MinGW(Minimalist GNU for Windows)是一个32位的GNU工具链,它提供了一套基于GNU的开发环境,包括GCC编译器和一些GNU库,可以用来编译Windows下的C和C++程序。但MinGW只支持32位程序的编译。

MinGW-W64是一个64位的GNU工具链,是MinGW的升级版,原本它是MinGW的分支,后来成为独立发展的项目,它支持同时编译32位和64位程序。它包括了一系列的GNU库和工具,例如GCC、Binutils、GDB等,还支持一些实用工具和库,如OpenMP、MPI等。

总的来说,MinGW-W64可以看作是MinGW的升级版,它支持更多的编译选项和更多的库,可以编译出更加高效和安全的程序。

另外,MinGW-W64原本是从MinGW项目fork出来的独立的项目。MinGW 早已停止更新,内置的GCC最高版本为4.8.1,而MinGW-W64目前仍在维护,它也是GCC官网所推荐的。

关于更多 MinGW 和 MinGW-W64 相关的知识:

  • 科普MinGW MinGW-W64

  • what-is-the-difference-between-mingw-mingw-w64-and-mingw-builds

MinGW-w64官网:MinGW-w64

GCC官网:GCC, the GNU Compiler Collection - GNU Project

2. MSVCRT 和 UCRT 介绍

MSVCRT和UCRT都是用于Windows平台的C运行时库,提供了基本的C函数和类型,用于C程序的开发和运行。

MSVCRT(Microsoft Visual C Runtime)是Microsoft Visual C++早期版本使用的运行时库,用于支持C程序的运行。它提供了一些常用的C函数,如printf、scanf、malloc、free等。MSVCRT只能在32位Windows系统上运行,对于64位系统和Windows Store应用程序不支持。

UCRT(Universal C Runtime)是在Windows 10中引入的新的C运行时库,用于支持C程序的运行和开发。UCRT提供了一些新的C函数,同时还支持Unicode字符集和安全函数,如strcpy_s、strcat_s、_itoa_s等。UCRT同时支持32位和64位系统,并且可以与Windows Store应用程序一起使用。

总的来说,UCRT是Microsoft为了更好地支持Windows 10和Windows Store应用程序而开发的新一代C运行时库,相比于MSVCRT,UCRT提供了更多的功能和更好的兼容性。但对于旧的32位Windows系统,MSVCRT仍然是必需的。

二、下载

MinGW-w64 更新日志:

  • Changelog - MinGW-w64

MinGW-w64 源码地址:

  • Github上的:mingw-w64/mingw-w64: (Unofficial) Mirror of mingw-w64-code

  • sourceforge.net上的:mingw-w64

如果你对源码感兴趣或想要自己从源码编译MinGW-w64应用程序,上述源码供你使用。

如果你的github不稳定,可以参考:几款Github加速神器

官方没在任何地方提供二进制安装程序。

哪里找MinGW-w64二进制应用程序?

下面提供几种方式:

1. 从 sourceforge.net 下载

  • 在线安装

    • Win32 位:Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe
  • 离线安装:

    • Win32 位:Toolchains targetting Win32/Personal Builds/mingw-builds
    • Win64 位:Toolchains targetting Win64/Personal Builds/mingw-builds

不推荐在线安装,安装过程特别慢,而且还可能失败!
注意:这里提供的二进制安装程序是旧的,支持的GCC版本停留在了"MinGW-W64 GCC-8.1.0"

截至目前GCC最新版本为:GCC-13.2
详情请参考:GCC Releases - GNU Project

如果你有特定需求,需要使用旧版本的,你可以参考下面的文章进行安装及配置:

  • 下载安装MinGW-w64详细步骤(c/c++的编译器gcc的windows版,win10真实可用)
  • MinGW-w64的安装及配置教程

2. 从 github 下载

  • 在线安装:
    • Releases · Vuniverse0/mingwInstaller (github.com)
  • 离线安装:
    • Releases · mmozeiko/build-gcc-mingw (github.com)
    • Releases · niXman/mingw-builds-binaries (github.com)

在线安装,需要先下载 mingwInstaller.exe (Installer of MinGW-W64 with GUI),后面介绍

3. 从 镜像站点 下载

网上找到的一个MinGW-w64镜像站点(不知道何方神圣提供的,用就完了)
http://files.1f0.de/mingw/
在这里插入图片描述

4. 自己编译

直接编译会比较复杂,这里推荐几个大神写好的MinGW-w64编译工具:

  • niXman/mingw-builds: Scripts for building the 32 and 64-bit MinGW-W64 compilers for Windows (github.com)
  • mmozeiko/build-gcc-mingw: Automatic 32-bit and 64-bit Windows build of gcc, mingw-w64, gdb and make. (github.com)

怎么使用?看对应的Readme介绍,本文不介绍。

三、安装与配置

1. 在线安装

这里不介绍 sourceforge.net上的在线安装,它上面的GCC版本太老了

这里介绍 Releases · Vuniverse0/mingwInstaller (github.com) 的在线安装方式:

1)下载mingwInstaller.exe
下载安装程序
2)以管理员身份运行mingwInstaller.exe,开始安装
安装引导
3)选择GCC版本
注意:Releases · Vuniverse0/mingwInstaller (github.com) 有好几个版本的mingwInstaller.exe,不同的版本支持的GCC版本不一样,我这里使用的是1.2.0版
选择gcc版本
4)选择软件架构
选择32bit还是64bit,看你自己的操作系统是多少位的
系统架构
5)选择线程模型
你开发的程序如果是运行在Windows系统上就选win32,如果是运行在其他系统(如 Linux,Unix,Mac OS等)就选posix
更多信息请参考:mingw-w64-threads-posix-vs-win32
选择线程模型
6)选择构建版本
选择构建版本,这里好像只有一个rev1,一般保持默认即可
选择构建版本
7)选择运行时库类型
选择运行时库类型,前面简介里有介绍
选择运行时类型
8)选择安装位置
可以勾选上Create shortcut on Desktop,使用会方便些
选择安装位置
9)安装过程(自动下载、解压、安装配置)
下载解压过程
安装完成

2. 离线安装

从 GitHub或镜像站点下载编译好的安装程序包(【二、下载】中提供的有地址)

以 niXman/mingw-builds-binaries/releases 为例,离线安装比较简单,只需下载解压即可

1)下载MinGW-w64的安装包
根据你自己的需要选择适合的安装包

  • 32位的操作系统,选择i686,64位的操作系统,选择x86_64
  • 13.1.0 是GCC的版本号,其他版本的你需要往下找;
  • win32是开发windows系统程序的协议,posix是其他系统的协议(例如Linux、Unix、Mac OS),更多信息参考:mingw-w64-threads-posix-vs-win32;
  • 异常处理模型seh(新的,仅支持64位系统),sjlj(稳定的,64位和32位都支持), dwarf(优于sjlj的,仅支持32位系统),更多信息参考:what-is-difference-between-sjlj-vs-dwarf-vs-seh/15685229;
  • msvcrtucrt 运行时库类型,有关介绍请参考文章简介部分;
  • rt_v11 运行时库版本;
  • rev1 构建版本;

下载MinGW-w64离线安装包

2)找一个地方解压(记住这个路径,后面配置环境变量用)

3. 环境配置

1)如果你是按照【1.在线安装】的,可以不用配置环境变量,直接打开MinGW-W64-64bit快捷方式(桌面或开始菜单),然后在打开的命令行窗口中直接就可以使用gcc等命令
验证MinGW-w64安装是否成功

2)如果你是按照【2.离线安装】的,将解压后的目录下的bin路径,手动添加到系统的PATH环境变量,怎么配置不用我就不演示了(实在是小白的话,自行百度吧),配置完后就可以在工作目录下使用gcc等命令了
(我这里的解压路径为:D:\Chen\MySoft\mingw64,配置的环境变量是这个路径下的bin目录路径)
配置环境变量
验证MinGW-w64是否安装成功

四、总结

  1. 【从sourceforge.net下载】中提供的安装程序,支持的GCC 8.1.0,版本太老了,不推荐你从这里下载安装;
  2. 【2. 从github下载】、【3. 从镜像网站下载】中提供的安装程序,支持的GCC版本都比较新,推荐从这里下载安装;
  3. 如果想要自己编译安装程序,你可以从【4. 自己编译】中推荐的工具进行编译安装你需要的MinGW-w64程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/68301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数组slice、splice字符串substr、split

一、定义 这篇文章主要对数组操作的两种方法进行介绍和使用,包括:slice、splice。对字符串操作的两种方法进行介绍和使用,包括:substr、split (一)、数组 slice:可以操作的数据类型有:数组字符串 splice:数组 操作数组…

【go语言学习笔记】04 Go 语言工程管理

文章目录 一、质量保证1. 单元测试1.1 定义1.2 Go 语言的单元测试1.3 单元测试覆盖率 2. 基准测试2.1 定义2.2 Go 语言的基准测试2.3 计时方法2.4 内存统计2.5 并发基准测试2.6 基准测试实战 3. 特别注意 二、性能优化1. 代码规范检查1.1 定义1.2 golangci-lint1.2.1 安装1.2.2…

vue3 + ts+element-plus学习笔记

子组件通过defineProps方法接收父组件传递过来的数据,是vue3中提供的方法,不需要引入,直接使用 方法的写法: const onClick (){... }自定义事件: 子组件点击事件 全局事件总线 mitt 兄弟组件之间的事件&#x…

【福建事业单位-资料分析】03 比重和平均数

【福建事业单位-资料分析】03 比重和平均数 一、比重(现期比重,基期比重、两期比重)1.1 现期比重增长贡献量,利润率 1.2基期比重(用现期和增长率逆求)1.3两期比重(难点重点)——比较…

基础实验篇 | QGC实时调整控制器参数实验

PART 1 实验名称及目的 QGC实时调整控制器参数实验:在进行硬件在环仿真和真机实验时,常常需要在QGC地面站中观察飞行状态,并对控制器参数进行实时调整,以使得飞机达到最佳的控制效果,但是,在Simulink中设…

改进的麻雀算法优化最大相关峭度解卷积(SCSSA-MCKD),实现早期微弱故障诊断,MATLAB代码实现

01 引言 由于一些设备的早期故障产生的冲击十分微弱,易被系统噪声干扰,如何有效地对设备的原始故障信号进行降噪并增强信号中微弱冲击成分,是进行该类部件早期故障诊断的关键。 最大相关峭度解卷积(MCKD)通过解卷积运算…

logstash日志换行处理小解

logstash主用于日志实时数据收集、解析,并将数据转发的工具,内置的功能也相当强大。但,同时意味着,他可能接收到各种情况的数据。 此处,我们主要讲解我实际使用中,碰到的一个小问题,换行(\n)。…

Zabbix监控系统详解及配置

前言 作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。利用一个优秀的监控软件,我们可以: 通过一个友好的界面进行浏览整个网站所有的服务…

JavaScript应用:五子棋游戏实战开发

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责…

MChat-Gpt V1.0.0 (将ChatGpt机器人接入内网供全体使用)

Github>https://github.com/MartinxMax/MChat-Gpt 首页 MChat-Gpt V1.0.0将ChatGpt机器人接入内网供全体使用 你需要一个ChatGpt账户如果您在中国则需要使用代理访问,设置TUN代理模式 安装依赖 选择你的系统进行安装 服务端配置 #python3 ChatGpt_Server.py -h 使用&a…

汉字形近字(OCR)

近期做中文OCR识别的优化,抓破头皮却收获甚微。 为了百尺竿头更进一步,遂将目光聚焦在中文汉字特有的形近字和生僻字问题上,于是怒发整理形近字大全(花了不少刀),希望对同行朋友们也有帮助: 地表…

【BMC】OpenBMC开发基础3:引入新的开源配方

引入新的开源配方 前面介绍了如何在OpenBMC中通过新建配方引入自己的程序,也介绍了如何修改原有的程序,下面要介绍的是如何引入开源的新程序,这在OE系统上是很方便的,重点就在于引入新的配方。 OE为了方便开发者使用&#xff0c…

【如何在Linux环境下进入Docker容器中的MySQL】

如何在Linux环境下进入Docker容器中的MySQL 查看所有容器 docker ps进入容器 docker exce -it {NAMES/CONTAINER ID} bash根据容器别名获取容器ID都可以进入到容器当中 3. 输入MySQL的账号和密码登录MySQL mysql -uroot -p{password}

竞赛项目 深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的视频多目标跟踪实现 …

HTTP代理授权方式介绍

在网络爬虫过程中,我们经常需要使用HTTP代理来实现IP隐藏、突破限制或提高抓取效率。而为了确保代理的正常使用,并避免被滥用,代理服务商通常会采用授权方式。在本文中,我们将介绍几种常见的HTTP代理授权方式,以帮助你…

Goland报错 : Try to open it externally to fix format problem

这句报错的意思也就是 : 尝试在外部打开以解决格式问题 解决方案 : 将图片格式该为.png格式,再粘贴进去就可以了! 改变之后的效果 : 那么,这样就ok了

服务器数据恢复-断电导致ext4文件系统文件丢失的数据恢复案例

服务器数据恢复环境: 一台服务器挂载一台存储设备,存储中划分一个Lun;服务器操作系统是Linux centos,EXT4文件系统。 服务器故障&分析: 意外断电导致服务器操作系统无法启动,系统在修复后可以正常启动&…

计算机网络(7) --- UDP协议和TCP协议

计算机网络(6) --- https协议_哈里沃克的博客-CSDN博客https协议https://blog.csdn.net/m0_63488627/article/details/132112683?spm1001.2014.3001.5501 目录 1.补充知识 1.PORT端口号 2.端口号范围划分 3.知名端口号 2.UDP协议 1.UDP报头 2.U…

【算法】逆波兰表达式

文章目录 定义求法代码思想: 定义 逆波兰表达式也称为“后缀表达式”,是将运算符写在操作数之后的运算式。 求法 *如:(ab)c-(ab)/e的转换过程: 先加上所有的括号。 (((ab)*c)-((ab)/e))将所有的运算符移到括号外面 (((ab) c)* …

WordPress博客发布到公网可访问【 windows系统及linux系统操作】

文章目录 1. 免费注册并下载安装cpolar内网穿透1.1 windows系统1.2 linux系统 2. 将内网映射到公网3. 获取所映射的公网地址 要将自己搭建的个人WordPress博客网站发布到公网可访问,比较常规的做法是买服务器、域名,将其部署到服务器上,备案发…