MingWc 和DEV-C++关系

  MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist   GNU   on   Windows的略称。详情请参考 <http://www.mingw.org> 。

这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC   (Microsoft   Foundation   Classes)。

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。

MinGW,即   Minimalist   GNU   For   Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用   GCC(GNU   Compiler   C)产生   Windows32   程序。    
在基本层,MinGW   是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的   NT   OS   上有效,在所有的   Windows   95   发行版以上的   Windows   OS   有效,使用基本运行时间,你可以使用   GCC   写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的   C   运行时间扩展。该功能是   Windows32   API   不具备的。下一个组成部分是   w32api   包,它是一组可以使用   Windows32   API   的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用   CRT(C   Runtime)又使用   Windows32   API   功能。    

MinGW   官方网站为   http://www.mingw.org
实际上   MinGW   并不是一个   C/C++   编译器,而是一套   GNU   工具集合。除开   GCC   (GNU   编译器集合)   以外,MinGW   还包含有一些其他的   GNU   程序开发工具   (比如   gawk   bison   等等)。  
开发   MinGW   是为了那些不喜欢工作在   Linux(FreeBSD)   操作系统而留在   Windows   的人(比如我)提供一套符合   GNU   的   GNU   工作环境。  
(此前的   cygwin   虽然也是   GNU   的   Windows   移植,但是   cygwin   是有版权的,而不是   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   下也很多   Windows   程序开发包,甚至有一些是支持跨平台使用的。不仅仅可以直接把源代码编译为   Windows   程序,也可以不经修改编译为其他操作系统的图形程序。  
不过   GNU   下,最流行的图形界面开发库是   GTK+。GTK+   也能很好的运行在   Windows   平台(比如   GIMP   和   Gaim)。  
总体说来,使用   MinGW   就是   GNU。  

 

cygwin是一个在windows平台上运行的unix模拟环境,是cygnus   solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。

cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32   api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是cygwin   dll),把win32   api中没有的unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32   api写了一个unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好像在unix上工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值