MinGW,是Minimalist GNU on Windows的缩写。它(tā)是一个(gè)可自由使(shǐ)用(yòng)和自由发布的Windows特(tè)定头文件(jiàn)和使用(yòng)GNU工(gōng)具集导入库的集合,允许你在(zài)GNU/Linux和(hé)Windows平台生成本地的Windows程序而不需要第(dì)三方C运(yùn)行时库。MinGW 是一组包含文件(jiàn)和(hé)端口(kǒu)库,其功能是允许控制台模(mó)式(shì)的程序使用(yòng)微(wēi)软的标准C运行时(shí)间库(kù)(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有(yǒu)的 Windows 95发(fā)行(háng)版(bǎn)以上的(de) Windows OS 有效,使用基本运行时间,你可以使(shǐ)用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提(tí)供(gòng)的 C 运(yùn)行时间扩展,与基本运行时(shí)间相(xiàng)结合,就可以有(yǒu)充分(fèn)的权利既使(shǐ)用(yòng) CRT(C Runtime)又使(shǐ)用 WindowsAPI功(gōng)能。

C/C++ 编译器,而(ér)是(shì)一套(tào) GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其(qí)他的 GNU 程序开发工具 (比如 gawk bison 等等)。
开(kāi)发 MinGW 是为了那些不(bú)喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的(de)人(比如我)提供一套符合 GNU 的 GNU 工作环境。
(此前的(de) cygwin 虽然也是 GNU 的(de) Windows 移植,但是 cygwin 是有(yǒu)版权的,而不是 GNU。)
所以(yǐ),使用 MinGW 我们就(jiù)可以像在 Linux 下一(yī)样(yàng)使(shǐ)用 GNU 程序开发(fā)工(gōng)具。
GCC 就是 MinGW 的核(hé)心所(suǒ)在,GCC 是一套支(zhī)持众多计算机程序语言(yán)的编译系统,而且在语言标(biāo)准的实现(xiàn)上是(shì)最接近于标准的。并且 GCC 几乎可以移植到目前所有可用的计算机平(píng)台。(我的电脑上就还(hái)装有(yǒu) DevKitPro,里面包(bāo)含 GCC 的 ARM(for GBA/DS/GP32) 和 MIPS(for PSP) 版本(běn)。)
GCC 本(běn)身不像 VC 那样拥有 IDE 界面(miàn)(在 Windows 上也(yě)存在 Dev C++ 之类的支持 MinGW 编译器的 IDE)。源代码编辑你(nǐ)可(kě)以选(xuǎn)用(yòng)任何你(nǐ)喜欢的文本(běn)编辑器(据说(shuō)微软的开发(fā)人(rén)员包括 VC 的开发都不用 VC 所带的 IDE 编辑器,而是(shì)选(xuǎn)用 GNU 的(de) VIM 编辑器)。然后使用(yòng) make 等工具来进行软件项目(mù)的编(biān)译(yì)、链接、打包乃(nǎi)至(zhì)发布。而像 cvs(svn) 源代码版本控制工具(jù)可以让世界上任何一个角落的人都(dōu)可以参与到软件项目中来。
关于(yú) MFC,微(wēi)软基础库类,这个随(suí) VC++ 携(xié)带(dài)的一个(gè)源代码(mǎ)公开的开发包,和其他 Windows 程序开发包是一(yī)样的。如果有 VC++ 的授(shòu)权,你完全可以使用 MFC 的源代码,也就是(shì)你使用 GCC 来编译 MFC 程(chéng)序是完全可以的。
当(dāng)然,GNU 下也很(hěn)多(duō) Windows 程序开发包,甚至有一些(xiē)是(shì)支持跨(kuà)平(píng)台使用的。不仅仅可以(yǐ)直接把源代码编译为 Windows 程序,也可以不经修改(gǎi)编译(yì)为其他操作(zuò)系统的(de)图(tú)形程序。
不过(guò) GNU 下,最流行的图形界面开发库是 GTK+。GTK+ 也能很好的(de)运行在 Windows 平台(比如(rú) GIMP 和 Gaim)。
总(zǒng)体说(shuō)来,使(shǐ)用 MinGW 就(jiù)是(shì) GNU。