什么是 MinGW-w64 ?
MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。
以上是 MinGW 的介绍,MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。
正因为如此,MinGW 现已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新,内置的 GCC 停滞在了 4.8.1 版本。
为什么使用 MinGW-w64 ?
MinGW-w64 是开源软件,可以免费使用。
MinGW-w64 由一个活跃的开源社区在持续维护,因此不会过时。
MinGW-w64 支持最新的 C语言 标准。
MinGW-w64 使用 Windows 的C语言运行库,因此编译出的程序不需要第三方 DLL ,可以直接在 Windows 下运行。
那些著名的开源 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 下工作,那么Code::Blocks可能是一个选择,不过最大的可能是您必须习惯使用 GCC 来编译程序。
下载和安装 MinGW-w64
打开有方网址,点击下载: MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net
下载完毕后,双击安装包,弹出以下界面:
Version选择当前支持的最高版本。
Architecture:由于我的是win10 64位,因此选择了x86_64。如果是32位电脑,需要选择i686。
Threads:这个世界上只有两种操作系统,符合 posix 协议的,和 Windows 。如这个笑话所说的,如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix 。我只开发在 Windows 下运行的程序,所以选择了 win32 。
Exception:异常处理在开发中非常重要,你在开发的过程中,大部分的时间会耗在处理各种异常情况上。如果你之前选择了 64位,则这里有两个异常处理模型供你选择,seh 是新发明的,而 sjlj 则是古老的。seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位。 我这里选择了 seh 。
如果之前架构选择的是i686,则选项是 dwarf 和 sjlj 两种异常处理模型。同样的,dwarf 的性能要优于 sjlj ,他们都不支持 64位 。
Build revision:使用默认值。
点击next安装,会在线下载安装。安装完毕后,需要配置系统环境变量。
MinGW-w64的可执行程序安装目录形如:C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin
说明:bin 文件夹下包含了很多后缀名是 .exe 的可执行程序,这些就是开发时所需的工具,如:gcc.exe 是用来编译 C程序的,g++.exe 是用来编译 C++ 程序的,而 gdb.exe 则是用来调试程序的 debug 工具。
复制该路径加入到系统环境变量
中的Path中
配置完毕,打开cmd命令行窗口,输入gcc -v
当弹出如下信息,即说明配置完成: