??????? cygwin/gcc和MinGW都是gcc在windows下的編譯環(huán)境,但是它們有什么區(qū)別?在實(shí)際工作中如何選擇這兩種編譯器呢?
??????? cygwin/gcc完全可以和在linux下的gcc劃等號(hào),這個(gè)從boost庫(kù)的劃分中就可以看出來(lái)端倪,cygwin下的gcc和linux下的gcc使用的是相同的Toolsets。
??????? 所以完全可以和linux一起同步更新gcc版本,而不用擔(dān)心有什么問(wèn)題,并且在
cygwin/gcc
下做的東西(不用win32的)可以無(wú)縫的用在linux下,沒(méi)有任何問(wèn)題。是在windows下開發(fā)linux程序的一個(gè)很好的選擇。但是在cygwin/gcc下編譯出來(lái)的程序,在windows下執(zhí)行必須依賴
cygwin1.dll
,并且速度有些慢,如果不想依賴這個(gè)東西的話,必須在gcc的編譯選項(xiàng)中加入-mno-cygwin。加入這個(gè)選項(xiàng)gcc編譯器就會(huì)自動(dòng)的選擇安裝cygwin/gcc時(shí)安上的MinGW,這個(gè)MinGW就是gcc的一個(gè)
交叉編譯
。
注: 交叉編譯是嵌入式開發(fā)過(guò)程中的一項(xiàng)重要技術(shù),它的主要特征是某機(jī)器中執(zhí)行的程序代碼不是在本機(jī)編譯生成,而是由另一臺(tái)機(jī)器編譯生成,一般把前者稱為目標(biāo)機(jī),后者稱為主機(jī)。采用交叉編譯的主要原因在于,多數(shù)嵌入式目標(biāo)系統(tǒng)不能提供足夠的資源供編譯過(guò)程使用,因而只好將編譯工程轉(zhuǎn)移到高性能的主機(jī)中進(jìn)行。
??????? MinGW作為gcc在windows上的一個(gè)實(shí)現(xiàn),由于不像cygwin的gcc在一個(gè)模擬linux上運(yùn)行,所以相當(dāng)一部分linux的工具不能夠使用,不過(guò)現(xiàn)在已經(jīng)有Msys這個(gè)模擬unix的shell,可以解決很多的問(wèn)題,不過(guò)沒(méi)有cygwin好用,而cygwin/gcc的no-cygwin選項(xiàng)又依賴于MinGW的支持,所以更新的更慢的,現(xiàn)在只是到3.3.3。在MinGW下也是可以升級(jí)gcc的,不過(guò)需要使用msys。升級(jí)方法和在cygwin&linux下差不多,就不再羅嗦了。不過(guò)就我的升級(jí)經(jīng)驗(yàn)來(lái)看好像都不太順利。具體深入的測(cè)試,我也沒(méi)有時(shí)間做了。
也是可以讓cygwin的最新安裝的gcc支持no-cygwin,需要再做一遍交叉編譯,但是我不會(huì)做,只好算了,呵呵,也許那一天我把這個(gè)搞定,再開一個(gè)貼吧。
??????? 根據(jù)以上的分析,如果在windows開發(fā)linux程序,cygwin是很好的選擇。如果你開發(fā)的程序不介意有一個(gè)cygwin1.dll的話,也是可以選擇cygwin的。如果你是想開發(fā)windows下的程序,還要必須用gcc的話,MinGW是很好的一個(gè)選擇。但是在windows下有太多的編譯器了,bc,vc,intel c.....
??????? 順便說(shuō)就題外的話,據(jù)說(shuō)gcc4.0.0性能有很大的提升,如果我升級(jí)完gcc4后,再編譯一把gcc4是不是以后的編譯性能會(huì)提高很多呢??
?一個(gè)技巧:如何知道當(dāng)前版本的gcc的安裝配置,用命令:gcc -v就可以了.?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1476632
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
