什么是minGW

MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。

  • MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。
  • MinGW64是Cygwin的分支,其支持pthread的Linux多线程库,而对于MinGW则不支持,因此使用MinGW是无法编译通过的,出现mutex等结构体未定义等错误。

正因为如此,MinGW 现已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新,内置的 GCC 停滞在了 4.8.1 版本,而 MinGW-w64 内置的 GCC 则更新到了 6.2.0 版本。

为什么使用 MinGW-w64

  1. MinGW-w64 是开源软件,可以免费使用。
  2. MinGW-w64 由一个活跃的开源社区在持续维护,因此不会过时。
  3. MinGW-w64 支持最新的 C语言 标准。
  4. MinGW-w64 使用 Windows 的C语言运行库,因此编译出的程序不需要第三方 DLL ,可以直接在 Windows 下运行。
  5. 那些著名的开源 IDE 实际只是将 MinGW-w64 封装了起来,使它拥有友好的图形化界面,简化了操作,但内部核心仍然是 MinGW-w64。
    MinGW-w64 是稳定可靠的、持续更新的 C/C++ 编译器,使用它可以免去很多麻烦,不用担心跟不上时代,也不用担心编译器本身有bug,可以放心的去编写程序。

MinGW-w64 适合做什么?

对于熟悉 MinGW-w64 的高手而言,它可以编译任何 C语言 程序。但对于一般人来说,MinGW-w64 太过简陋,连图形用户界面都没有。这让习惯使用鼠标的人,感到很痛苦。虽然也可以通过一些配置,让 MinGW-w64 拥有图形用户界面,但那个过程非常麻烦。

除此之外,编译复杂的程序时,还需要你会编写 Makefile ,否则只能一个文件一个文件的编译,可想而知会多么辛苦。

但对于初学 C语言 的人来说,MinGW-w64 是正合适的编译器,至少黑色的命令提示符界面很有编程的气氛,感觉很酷。

在刚开始学 C语言 时,所有代码通常都写在一个文件中,只要输入几个简单的命令,就能用 MinGW-w64 编译成可执行文件。虽然 VS2015 等编译器,只要点击下鼠标就可以完成编译,但它会自动生成一大堆工程文件,让初学者摸不着头脑。而 MinGW-w64 则只会生成一个可执行文件。

如果对 MinGW-w64 和 VS2015 等编译器进行一下形容,那么 MinGW-w64 是手动的,而 VS2015 等编译器则是自动的。因此 MinGW-w64 的编译过程更加直观容易理解,也比较适合C语言学习。

总而言之,对于一般人来说,MinGW-w64 适合学习 C语言 时使用,真正工作还是用 VS2015 更好。当然如果您是在 Linux 下工作,那么clion可能是一个选择,不过最大的可能是您必须习惯使用 GCC 来编译程序。

下载MinGW-w64

官网实在是太慢了,这里提供下载好的Mingw离线包。

链接:https://pan.baidu.com/s/13ukGn27JEseCpJ2PokzEPg
提取码:x2ms

当然,时间多的请随意

1: 下载: http://mingw-w64.org/doku.php, 首页样式如下图所示。点击红框中的“Downloads”超链接,就会进入 MinGW-w64 下载详情页面。

MinGW-w64 下载详情页面有一个叫做Pre-built toolchains and packages的 列表,里面是包含 MinGW-w64 及特定工具的整合包。我们这个教程只安装 MinGW-w64 ,所以只需下载 MinGW-w64 即可。点击红框中的SourceForge超链接,就会进入 SourceForge 中的 MinGW-w64 下载页面。

下面就是 MinGW-w64 下载页面, MinGW-w64 的代码和可执行文件被托管存储在 SourceForge 上,在这个页面上就可以直接下载 MinGW-w64 了。MinGW-w64 是非常复杂的,编译器大多都是如此,为了适应各种操作系统,它们的组件会存在各种不同的版本,以适应不同的环境。所以,我们直接下载 MinGW-w64 的安装程序,它会按照我们的需要,自动下载适合的组件,并将它们组织在一起。

注意:不要手贱点绿色按钮去下载!!!
往下拉,一直拉到下面的界面,点击红框中的“Download mingw-w64-install.exe”超链接,将会下载 MinGW-w64 自动安装的程序。


等待 MinGW-w64 安装程序开始下载

下载之后,就可以看到如下图 MinGW-w64 的安装程序。它本质上是一个下载程序,会根据我们之后的一些设置,选择性的下载相应的组件,并将它们组织在一起。所以,运行前要确定网络通畅,而且你有足够的时间,因为根据你的网速,它可能需要花费一定的时间来下载。我们用鼠标双击运行 mingw-w64-install.exe 。

注意:如果出现无法运行,或者安装出错,你可以右键点击它,并在弹出窗口中选择“以管理员身份运行”选项,重新运行 mingw-w64-install.exe ,基本可以解决大部分问题。


然后next, 接下来我们就可以根据所要搭建的开发环境,选择不同的选项,从而下载所需的组件。

  • Version: 指的是 gcc 的版本,如果没有特殊的需求,一般选择最高的版本号即可。
  • Architecture :是指电脑系统是 32位 还是 64位,根据你的电脑系统做出对应选择。64位系统选择x86_64,32位系统选择i686;
  • Threads:这个世界上只有两种操作系统,符合 posix 协议的,和 Windows 。如这个笑话所说的,如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix。建议选择posix,否则像是opencv等github上的软件就不能使用它编译了
  • Exception:异常处理在开发中非常重要,你在开发的过程中,大部分的时间会耗在处理各种异常情况上。
    • 如果你之前选择了x86_64位,则这里有两个异常处理模型供你选择,seh 是新发明的,而 sjlj 则是古老的。seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位。我这里选择了seh
    • 选择了i686位 后,则可以用 dwarf 和 sjlj 两种异常处理模型。同样的,dwarf 的性能要优于 sjlj ,可以它不支持 64位 。建议选择 dwarf
  • Build revision :我的电脑上只有一个0,没得选

下面.选择 MinGW-w64 的安装目录

  • 界面中的 Space available 指的是你选择的目录,所在的硬盘分区的剩余空间,而 MinGW-w64 至少会占用 500 MB 的空间。
  • Create shortcuts in Start Menu 是说在开始菜单创建 MinGW-w64 的快捷方式,一般默认勾选即可。


接下来等待下载完成,点击红框中的“Finish”按钮,将关闭 MinGW-w64 安装程序

当完成之后。 MinGW-w64 的安装程序已经完成了它的使命,但 MinGW-w64 还没有安装完成,之后我们还需要进行一些配置,才能正常使用它编译源代码。

我们来看看MinGW下载完成之后的安装目录。

  • 一个文件夹:

安装mingw-w64

mingw-w64是不需要安装的,只需要配置好环境变量就可以了

解压之后的目录

然后进入bin目录: bin 文件夹下包含了很多后缀名是 .exe 的可执行程序,这些就是开发时所需的工具,如:gcc.exe 是用来编译 C程序的,g++.exe 是用来编译 C++ 程序的,而 gdb.exe 则是用来调试程序的 debug 工具。我们复制这个地址

我们将这个路径加入环境变量: 所谓的“环境变量”其实就是各种程序的默认安装目录,在那里有可执行程序。很多软件在安装的时候,会自动编辑环境变量。MinGW-w64 的安装程序比较简陋,只能由我们手动编辑。



测试

接下来我们看看mingw-w64有没有安装成功

MinGW-w64 是命令行工具,如果不与其他软件配合,则只能通过“命令提示符”来调用。


输入“gcc -v” 并按回车键(Enter),将会显示 MinGW-w64 的组件列表。

如果你的“命令提示符”显示了一大串组件信息,那说明你的 MinGW-w64 已经安装完成了

Cygwin 与 MinGW/MSYS/MSYS2,如何选择?

win10:mingw-w64安装教程相关推荐

  1. win10纯净版安装教程

    win10纯净版安装教程 一.工具 ultraiso(启动盘制作工具,不会为系统安装软件).Windows 10 纯净版镜像 ultraiso官方下载链接:ultraiso (可直接搜索到官网) Wi ...

  2. Win10安卓子系统安装教程

    Win10安卓子系统安装教程 必要安装文件下载和安装 子系统安装方法 方法一:安装 `WSA PacMan` 方法二:安装 `APK安装程序` 必要安装文件下载和安装 win10安卓子系统和win11 ...

  3. win10安装过程修改esp分区吗_ghost版Win10系统的安装教程

    随着性能的稳定与兼容性越来越强,很多用户打算给电脑安装win10系统,那么ghost版win10系统如何安装呢?下面笔者教你ghost版Win10系统的安装教程. 一.安装准备: 1.支持UEFI启动 ...

  4. windows安装包删了会有影响吗_已安装更新可以删除吗?win10删除更新安装教程

    已安装更新可以删除吗?众所周知,Win10会为用户自行下载安装驱动更新,有时候却导致系统故障.面对这样的问题我们怎么解决呢?下面,我们就针对问题来看看详细的win10删除更新安装教程. win7删除系 ...

  5. 服务器系统2022安装wsl2,微软win10子系统wsl2安装教程(附三个实例应用场景)

    wsl2与今年6月份微软buld的大会上发布消息,7月15日左右开始正式加入windows inside版本,熟悉wls(win10子系统)一代的都知道,这东西把linux系统的操作直接带入到win1 ...

  6. win10系统一键安装教程

    U盘装机大师一键安装win10系统教程 微软自推出了win10系统后众人纷纷开始自动升级win10系统.不过,自动升级win10系统常常出现各种不确定的问题,导致升级失败,这时候我们就该用成功率最高的 ...

  7. 如何安装win10和win11,懒人必备win10和win11安装教程

    的小伙伴安装好PD虚拟机后不知道如何安装Win系统,今天为大家带来win10和win11的免安装版本,懒人小白专用哦. 准备工作 PD虚拟机无限试用版. 符合自己电脑的win系统 安装教程 Paral ...

  8. 一看就会,Intel 芯片的Mac电脑PD虚拟机懒人win10和win11安装教程

    Parallels Desktop虚拟机破解版如何快速安装Win系统,Intel mac如何快速安装Win+虚拟机.为大家带来Parallels Desktop虚拟机破解版如何安装win系统教程. 请 ...

  9. 华硕java安装教程win10_华硕台式机如何重装win10系统,win10系统一键安装教程

    华硕台式机如何重装win10系统?一键重装系统会有风险吗?很多电脑小白在重装系统的之前总会问这些问题,生怕中途会出现什么错误.其实一键重装系统在安装过程中是几乎不用手动操作的,所以出现失误的情况很少. ...

最新文章

  1. 创建Material Design风格的Android应用--使用Drawable
  2. 黄聪:使用Wordpress中的wpdb类操作数据库
  3. 迷宫问题---递归解决
  4. 将旧版本从Java EE 5减少到7
  5. 安装rz_Centos 8下Mysql8的安装,以及远程Navicat适配(面向纯小白)
  6. C++设计模式-Mediator中介者模式
  7. 现在没有可用的软件包 *** ,但是它被其它的软件包引用了 和 E: 无法定位软件包 ***问题解决(思路清晰干货)
  8. insert oracle用法,insert into select的实际用法,insertselect
  9. webstore 与 热编译的配置冲突
  10. python网络编程01/网络协议
  11. python中的scipy库_SciPy库学习
  12. 【原创】EXCEL公式经验(1)---如何拆解/拆分字符串为多列和多行,但是注意不要超过EXCEL字符串最长长度限制!
  13. AI人工智能的5种绝佳编程语言
  14. 通用型二阶卡尔曼滤波算法
  15. atv320说明书_ATV320U30N4B 施耐德 ATV320通用变频器 说明书
  16. 如何提升自己(一) 谈学习
  17. android用户和AID
  18. 数据挖掘是什么,数据挖掘的学习路线是什么?
  19. BigDecimal取余运算
  20. Android 系统性能优化

热门文章

  1. 基于SQLSERVER--数据库表的修复
  2. EOS 一周回顾(11.25-12.1)
  3. 使用python有趣地解决一道动态币值规划方案
  4. Mac-Brew介绍
  5. 完美解决前端无法上传大文件方法
  6. 使用SwiftyJSON解析JSON
  7. L1-079 天梯赛的善良
  8. uedit上传视频时提示输入的视频地址有误,请检查后再试
  9. 基于PHP网上购物商城系统设计与实现 开题报告
  10. SourceTree使用配置