source:http://linux./forum/showthreaded.php?Cat=&Board=UBB24&Number=1812&page=5&view=expanded&sb=12&o=&vc=1 最近在進(jìn)行一個項目的預(yù)研工作,,其中涉及到編譯器的選擇問題。轉(zhuǎn)載這篇文章,,供參考,。 另外,就我個人的一點點經(jīng)驗來看,,中的C++編譯器較VC6.0已經(jīng)有非常大的進(jìn)步,,同是realse下的一個測試程序,VS2005編譯得到的程序的效率比VC6有成倍的提高,。進(jìn)一步性能對比有待測試,。不過對比較大型的C++項目來說,是個不錯的選擇,。
關(guān)于c++的編譯器現(xiàn)在有很多,,各有所長。不可能每個人都全部用過,。 我主要用這兩種編譯器,其他的很少用,所以不敢評價,。請大家評論,。 上面提到的編譯器/解釋器,,大部分我都使用過。現(xiàn)在固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32這五種編譯器,。 在 GCC家族中GNU GCC是根本,,其它的編譯器版本都是從它導(dǎo)出的。其中,,Cygwin和Mingw32都是WIN32平臺下的編譯器,,DJGPP是DOS下的32位編譯 器。大家所熟知的DEV-C++充其量只是GCC的一個外殼,,它所自帶的編譯器就是Mingw32的一個版本,。這些GCC的版本中,Cygwin是最大 的,,它與其說是一個編譯器,,倒不如說是一套編程工具。它不僅有編譯器,,還有其它很多的工具,。其實,它就是一個UNIX系統(tǒng)在WIN32平臺上的實現(xiàn),。實現(xiàn) 了大多常用的UNIX工具,,最近的版本中連Apache這樣的“工具”都集成進(jìn)來的,。不過,Cygwin雖然功能強(qiáng)大,,但它卻不是很易用(和UNIX相 似,,熟悉UNIX的人用它可以很快上手),因為太多其它的工具分散了人們的注意力,。相比之下Mingw32就要好用得多,,它只有最基本的幾個編程工具(只 可惜它不自帶GDB)。GCC中并不只是C/C++編譯器,,其中還有很多其它的編譯器如JAVA,,F(xiàn)ortran,ADA等,。它是一個編譯器集合,,不過有 些編譯器只能在UNIX系統(tǒng)上用。MS家族的編譯器就不用說了,,大家對它們都很熟悉,。VC 7.0(VC.NET)是它的最新產(chǎn)品。Borland家族也不用說,,大家也是耳熟能詳,。最近它才推出了BCB 6.0。 其它的編譯器
如:Intel C/C++大家一看名稱就知道是Intel的東西,,它和VC6完全兼容,,不過要掛在VC6下才能用。Watcom
C/C++是早先編譯器四國大戰(zhàn)中的一員,,原本是很不錯的東西,可惜戰(zhàn)略不對,,現(xiàn)在已不見聲息了,。倒是以它為基礎(chǔ)的一個OpenWatcom現(xiàn)在還在奮
戰(zhàn)。VectorC是我近日才發(fā)現(xiàn)的一個好東東,,它是個純C的編譯器,。IBM的VisualAge for
C++原本是IBM想用來淌C++編譯器這片渾水的東西,不過IBM的戰(zhàn)略改了,,它就被放棄了,。DigitalMars
C/C++的前身的Symantec
C++(它也是編譯器四國大戰(zhàn)中的一員),不過現(xiàn)在Symantec不做了,,于是它的作者就把它改成了DigitalMars
C/C++開放給大家使用,。以上這些都是WIN32平臺上的東西。KAI
C/C++是個很強(qiáng)大的C/C++編譯器,,它是個多平臺的編譯器,。不過現(xiàn)在被INTEL收購了,已經(jīng)停止開發(fā)了。Lcc4.1是個純C的編譯器它是開放源
代碼的,。不過不怎么好用,。LCC-WIN32是一個在LCC基礎(chǔ)上開發(fā)的C語言的集成開發(fā)環(huán)境,很好用,,而且有很詳細(xì)的資料,,F(xiàn)REE!Pacific
C是一個純DOS的C的集成開發(fā)環(huán)境,,就不多說了,。Small C
CC386都是開放源代碼的編譯器,它們都很簡單,,應(yīng)用來給大家學(xué)習(xí)編譯器的,。Quincy Eic
CINT都是C的解釋器,是用來讓大家學(xué)習(xí)C語言的其中CINT的功能很強(qiáng)大,,還支持一些C++的特性,。 在
以上的編譯器中,,最特別的就是VectorC這個東西只支持純C,。但它卻號稱是最快的編譯器,不過經(jīng)過我的試驗,,它的確在有些情況下強(qiáng)過其它編譯器很多,!
而且它還有個交互式的優(yōu)化器,可以讓你直接看到C代碼對映的匯編代碼,。Cygwin和Mingw32為一母所生,,其運行效果相差不大。它們生成的代碼效率
都很不錯,,編譯的速度也很快,,最值得一提的是它們對C++的特性的支持算是所有編譯器中最完全的,而且它們還支持C99的大部分特性,。這一點很是不錯,!大
家對MS的VC已經(jīng)很熟悉了,本不用我多說,。不過在它的最新的產(chǎn)品VC7.0中,,有很大的改進(jìn)。它對C++的特性的支持比6.0有了很大的提高,,是我所用
的編譯器中是僅次于GCC的,。而且它編譯出的程序,,運行速度很快!僅有少數(shù)時候次于VectorC與GCC,,其它情況都是最快的,!其平均運行速度是最快
的。對Borland的產(chǎn)品我也無需多說,。它的TC2.0與BC3.1都是我最喜歡的東西,。可是現(xiàn)在的BCB卻大不如前了,,編譯的速度和VC6一樣
慢,!IDE還有較多的BUG。最令人想不通的是它生成的代碼的運行速度很慢,,比LCC-WIN32還慢,!它唯一值得一提的就是它的RAD做的比MS的好。
Intel的編譯器大家可能不熟,,它太貴了,!還要有VC的支持,很不劃算,,而且編譯速度比VC6還慢,。不過它的代碼質(zhì)量很不錯。DigitalMars
C/C++沒有什么亮點,,編譯速度較快,,代碼執(zhí)行速度適中,對C++特性支持還算不錯,。LCC-WIN32是個很不錯的集成開發(fā)環(huán)境,,它只支持純C。它的
編譯速度極快,!代碼執(zhí)行速度較慢,。不過它的最大亮點在于它的IDE,在所有的FREE編程工具中,,它的IDE是最專業(yè)的,有很強(qiáng)大的代碼分析,,管理功能,。
而且它提供了大量的編程資料。 |
|