MinGW和Cgywin的區別

2021-07-09 04:23:28 字數 2466 閱讀 3958

起初,gcc是用於unix,unix-like系統的編譯器。不過,現在windows下也出現了gcc的穩定移植版。如今,在windows下比較流行的gcc移植版主要有三個。他們是 mingw,cygwin和djgpp。雖然,djgpp是應用於dos系統的,考慮到windows對dos的相容,所以也將djgpp納入其中了。那它們究竟有什麼特點和區別呢?

一 在windows下比較流行的gcc移植版主要有三個。

mingw 的主要方向是讓gcc的windows移植版能使用win32api來程式設計。

cygwin 的目標是能讓unix下的程式**在windows下直接被編譯。

djgpp 則是想讓dos下也能用上gcc。

二 介紹

mingw

minimalistic gnu for windows。

她是乙個建立在gcc和binutils 專案上的編譯器系統。和其他gcc的移植版相比,她可以說是最接近win32的乙個了。

因為,mingw幾乎支援所有的win32api,這也是mingw的特色之一。

她所連線的程式,不需要任何第三方庫就可以執行了,允許人們在沒有第三方動態鏈結庫的情況下使用 gcc(gnu compiler c)產生 windows32 程式。

在某種程度上看,mingw更像是vc的替代品。

實際上 mingw 並不僅是乙個 c/c++ 編譯器,而是一套 gnu 工具集合。除開 gcc (gnu 編譯器集合) 以外,mingw 還包含有一些其他的 gnu 程式開發工具

cygwin

其實並不是乙個gcc。她是讓windows擁有unix環境的軟體, 可以直接編譯unix下程式。

所以,gcc自然也就會包含在裡面。

不過,對於開發者,cygwin是乙個開發環境。而對於使用者來說cygwin是乙個執行環境。

cygwin唯一和mingw最大的區別在於,使用cygwin可以在windows下呼叫unix的系統函式。

比如程序函式,等等。所以,雖然說,cygwin是執行在windows下的,但是她還是使用的是unix系統的函式和思想。

msys

unix-like command line utilities

包括基本的bash, make, gawk and grep 等等。通常也可以認為是小型的unix on windows。提供在windows上模擬unix環境來使用mingw。

中國發行版,用unix開發環境開發windows程式。

msys在windows下模擬了乙個類unix的終端,它只提供了mingw的使用者載入環境,在msys模擬的unix環境下使用mingw,就像在unix使用gcc一樣。

三 cygwin和mingw區別

cygwin和mingw都是gcc在windows下的編譯環境,但是它們有什麼區別,在實際工作中如何選擇這兩種編譯器。

cygwin下的gcc和linux下的gcc完全使用的是相同的toolsets。所以完全可以和linux一起同步更新gcc版本,而不用擔心問題,並且在cygwin做的東西(不用win32的)可以無縫的用在linux下,沒有任何問題(這一點值得商榷)。是在windows下開發linux程式的乙個很好的選擇。

但是在cygwin/gcc下編譯出來的程式,在windows執行必須依賴cygwin1.dll,並且速度有些慢,如果不想依賴這個東西的化,必須在gcc的編譯選項中加入-mno-cygwin。加入這個選項其實gcc編譯器就會自動的選擇在安裝cygwin/gcc時安上的mingw,這個mingw就是gcc的乙個交叉編譯。

對於mingw作為gcc在windows上的乙個實現,由於不像cygwin的gcc在乙個模擬linux上執行,同時相當一部分linux的工具不能夠使用,不過現在已經有msys這個模擬unix的shell,可以解決很多的問題。

四 總結

mingw是windows版本的gcc集合,不需要依賴中間層。 msys是小型的linux的環境的模擬,可以與mingw結合來模擬linux環境下使用mingw的gcc。 cygwin是功能強大的linux環境,由於有cygwin1.dll實現了底層的windows api到linux api的轉化。所以在cygwin裡開發就相當於在linux上開發,對於開發人員來說就相當於呼叫linux型別的api,所以這樣開發的程式也可以直接移植到linux上。但是如果這樣的程式要在windows上執行的話,執行時必須要cygwin1.dll支援。 根據以上的分析,如果在windows開發linux跨平台的程式,linux模擬器cygwin以及所包含的gcc是很好的選擇,但是開發的程式必須依賴乙個cygwin1.dll。如果你只是想在windows下使用gcc編譯器也不想依賴其他的dll,mingw是很好的乙個選擇。

通過對 mingw,cygwin和djgpp特點與不同之處介紹,相信很多對這方面有需求的使用者也有一定的了解,在使用gcc編譯器能夠得到更大的幫助。

cygwin和mingw的區別

1 使用區別 cygwin gcc和mingw都是gcc在windows下的編譯環境,但是它們有什麼區別,在實際工作中如何選擇這兩種編譯器。cygwin gcc完全可以和在linux下的gcc化做等號,這個可以從boost庫的劃分中可以看出來端倪,cygwin下的gcc和linux下的gcc完全使用...

GCC和MinGW的區別

cygwin gcc和mingw都是gcc在windows下的編譯環境,但是它們有什麼區別,在實際工作中如何選擇這兩種編譯器。cygwin gcc完全可以和在linux下的gcc化做等號,這個可以從boost庫的劃分中可以看出來端倪,cygwin下的gcc和linux下的gcc完全使用的是相同的to...

MinGW安裝和使用

p.s.安裝mingw主要是code blocks 編譯出現了這個問題 error you need to specify a debugger program in the debuggers s settings.for mingw compilers,it s gdb.exe without ...