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上工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章