MinGW简介
MinGW是指只用自由
软件来生成纯粹的Win32
可执行文件的编译环
境,它是
Minimalist GNU on Windows的略称。这里的“纯粹”是指「使用
msvcrt.dll的
应用程序」。无法使用
MFC (Microsoft Foundation Classes
微软基础类库)。
注:
msvcrt.dll(名称:Microsoft C Runtime Library)提供了printf,malloc,strcpy等
C语言库函数,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取
命令行参数)以及退出等功能.
编辑本段主要特点
MinGW:一个可自由使用和自由发布的Windows特定
头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。
在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用
微软的标准C运行时间库(
MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合
美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。下一个组成部分是 w32api 包,它是一组可以使用 Windows32 API 的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 Windows32 API 功能。
编辑本段工具集合
实际上 MinGW 并不是一个 单纯的C/C++
编译器,而是一套 GNU 工具集合。除开 GCC 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。
开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD)
操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。
所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的
编译系统,而且在语言标准的实现上是最接近于标准的。并且 GCC 几乎可以移植到目前所有可用的
计算机平台。(
我的电脑上就还装有 DevKitPro,里面包含 GCC 的 ARM(for GBA/DS/GP32) 和 MIPS(for PSP) 版本。)
GCC 本身不像 VC 那样拥有
IDE 界面(在 Windows 上也存在
Dev C++ 之类的支持 MinGW
编译器的 IDE)。
源代码编辑你可以选用任何你喜欢的文本
编辑器(据说
微软的开发人员包括 VC 的开发都不用 VC 所带的 IDE 编辑器,而是选用 GNU 的 VIM 编辑器)。然后使用 make 等工具来进行
软件项目的编译、链接、打包乃至发布。而像 cvs(svn)
源代码
版本控制工具可以让世界上任何一个角落的人都可以参与到
软件项目中来。
关于 MFC,
微软基础库类,这个随 VC++ 携带的一个
源代码公开的开发包,和其他 Windows 程序开发包是一样的。如果有 VC++ 的授权,你完全可以使用 MFC 的
源代码,也就是你使用 GCC 来编译 MFC 程序是完全可以的。
不过 GNU 下,最流行的图形界面开发库是
GTK+与Qt。GTK+ 与Qt均提供跨平台支持。例如qt支持windows、linux、mac os x、windows CE、symbian、meego等
操作系统平台,并且提供了Qt SDK(包含Qt creator
集成开发环境)。Gtk也能很好的运行在 Windows 平台(比如 GIMP 和 Gaim)。
总体说来,使用 MinGW 就等于使用GCC的Windows版本。
编辑本段版本发布
2010年06月09日,MinGw 2.14 发布,该版本修正了下载错误的问题,同时几乎升级了所有的依赖
软件包到最新版本,新增对 libarchive,libgee,xvidcore 包的支持。
2010年06月18日,MinGw 2.15 发布,跨平台编译环境,该版本修正了由 Qt 项目引起的下载错误,另外所有相关的包都升级到了最新版本。
2010年12月13日,MinGW 2.17 发布。
2011年03月20日,MinGW 2.19 发布,该版本改进内容:
1. 改进了下载机制
2. A CMake toolchain file is now prov
ided to simplify cross-compiling projects that use CMake.
3. 不再支持 Debian/Lenny
4. gtk 包改名为 gtk2.
5. 更新几乎所有的包到最新的版本
6. 支持下列包: dbus, graphicsmagick, libical, liboauth, physfs, and vigra. boost::filesystem users should note that version 3 is a major revision and now the default in 1.46。
2011年06月09日,MinGW 2.21 发布,该版本修复了很多包中的一些小bug,并升级几乎所有的包到最新的版本;而 gtkmm 和 gtksourceviewmm 重命名为 gtkmm2 和 gtksourceviewmm2 ;增加对 libass、poco和 t4k_common 包的支持。