C/C++編譯器

GCC家族有 
Cygwin 
Mingw32 
DJGPP 
Dev-C++(Mingw32) 
還有正宗的GNU   GCC   2.95.5~3.0.0.4版本 
MS家族有 
MSC   5.0、6.0、7.0 
MSQC   1.0、2.5 
MSVC   1.0、4.二、6.0、7.0 
Borland家族有 
TC   1.0、2.0 
TC++   1.0一、3.0 
BC   3.0、3.一、4.0、4.五、5.0、5.02 
BCB   3.0、5.0、6.0 
其它有 
Intel   C/C++   5.0 
Watcom   C/C++   11.0、11.0c 
VectorC   1.3.3 
IBM   VisualAge   for   C++ 
DigitalMars   C/C++ 
KAI   C/C++   4.03f   for   RedHat   7.2 
Lcc4.1 
LCC-WIN32   2001-09-25~2002-04-28日版 
Small   C 
CC386 
Pacific   C 
另外還有C的解釋器 
Quincy 
Eic 
CINT 

上面提到的編譯器/解釋器,大部分我都使用過。如今固定使用VC7.0   Cygwin   Mingw32   VectorC和LCC-WIN32這五種編譯器。 

在GCC家族中GNU   GCC是根本,其它的編譯器版本都是從它導出的。其中,Cygwin和Mingw32都是WIN32平臺下的編譯器,DJGPP是DOS下的32位編譯器。你們所熟知的DEV-C++充其量只是GCC的一個外殼,它所自帶的編譯器就是Mingw32的一個版本。這些GCC的版本中,Cygwin是最大的,它與其說是一個編譯器,倒不如說是一套編程工具。它不只有編譯器,還有其它不少的工具。其實,它就是一個UNIX系統在WIN32平臺上的實現。實現了大多經常使用的UNIX工具,最近的版本中連Apache這樣的「工具」都集成進來的。不過,Cygwin雖然功能強大,但它卻不是很易用(和UNIX類似,熟悉UNIX的人用它能夠很快上手),由於太多其它的工具分散了人們的注意力。相比之下Mingw32就要好用得多,它只有最基本的幾個編程工具(只惋惜它不自帶GDB)。GCC中並不僅是C/C++編譯器,其中還有不少其它的編譯器如JAVA,Fortran,ADA等。它是一個編譯器集合,不過有些編譯器只能在UNIX系統上用。MS家族的編譯器就不用說了,你們對它們都很熟悉。VC   7.0(VC.NET)是它的最新產品。Borland家族也不用說,你們也是耳熟能詳。最近它才推出了BCB   6.0。 

其它的編譯器如:Intel   C/C++你們一看名稱就知道是Intel的東西,它和VC6徹底兼容,不過要掛在VC6下才能用。Watcom   C/C++是早先編譯器四國大戰中的一員,本來是很不錯的東西,惋惜戰略不對,如今已不見聲息了。卻是以它爲基礎的一個OpenWatcom如今還在奮戰。VectorC是我近日才發現的一個好東東,它是個純C的編譯器。IBM的VisualAge   for   C++本來是IBM想用來淌C++編譯器這片渾水的東西,不過IBM的戰略改了,它就被放棄了。DigitalMars   C/C++的前身的Symantec   C++(它也是編譯器四國大戰中的一員),不過如今Symantec不作了,因而它的做者就把它改爲了DigitalMars   C/C++開放給你們使用。以上這些都是WIN32平臺上的東西。KAI   C/C++是個很強大的C/C++編譯器,它是個多平臺的編譯器。不過如今被INTEL收購了,已經中止開發了。Lcc4.1是個純C的編譯器它是開放源代碼的。不過不怎麼好用。LCC-WIN32是一個在LCC基礎上開發的C語言的集成開發環境,很好用,並且有很詳細的資料,FREE!Pacific   C是一個純DOS的C的集成開發環境,就很少說了。Small   C   CC386都是開放源代碼的編譯器,它們都很簡單,應用來給你們學習編譯器的。Quincy   Eic   CINT都是C的解釋器,是用來讓你們學習C語言的其中CINT的功能很強大,還支持一些C++的特性。 
固然還有不少其它的編譯器,這裏我給出的編譯器都是能夠在WIN32或DOS平臺上用的(除KAI外)。UNIX平臺上的編譯器仍是以GNU的爲主,其它的我就不是很清楚了。 

在以上的編譯器中,最特別的就是VectorC這個東西只支持純C。但它卻號稱是最快的編譯器,不過通過個人試驗,它的確在有些狀況下強過其它編譯器不少!並且它還有個交互式的優化器,可讓你直接看到C代碼對映的彙編代碼。Cygwin和Mingw32爲一母所生,其運行效果相差不大。它們生成的代碼效率都很不錯,編譯的速度也很快,最值得一提的是它們對C++的特性的支持算是全部編譯器中最徹底的,並且它們還支持C99的大部分特性。這一點非常不錯!你們對MS的VC已經很熟悉了,本不用我多說。不過在它的最新的產品VC7.0中,有很大的改進。它對C++的特性的支持比6.0有了很大的提升,是我所用的編譯器中是僅次於GCC的。並且它編譯出的程序,運行速度很快!僅有少數時候次於VectorC與GCC,其它狀況都是最快的!其平均運行速度是最快的。對Borland的產品我也無需多說。它的TC2.0與BC3.1都是我最喜歡的東西。但是如今的BCB卻大不如前了,編譯的速度和VC6   同樣慢!IDE還有較多的BUG。最使人想不通的是它生成的代碼的運行速度很慢,比LCC-WIN32還慢!它惟一值得一提的就是它的RAD作的比MS的好。Intel的編譯器你們可能不熟,它太貴了!還要有VC的支持,很不划算,並且編譯速度比VC6還慢。不過它的代碼質量很不錯。   DigitalMars   C/C++沒有什麼亮點,編譯速度較快,代碼執行速度適中,對C++特性支持還算不錯。LCC-WIN32是個很不錯的集成開發環境,它只支持純C。它的編譯速度極快!代碼執行速度較慢。不過它的最大亮點在於它的IDE,在全部的FREE編程工具中,它的IDE是最專業的,有很強大的代碼分析,管理功能。並且它提供了大量的編程資料。 
我曾對一些編譯器的代碼執行效率作過一些測試,如下是概況: 
1.   VectorC、VC   7.0   (極快) 
2.   Intel   C/C++、VC   6.0、GCC   (很快) 
3.   DigitalMars   C/C++   (通常) 
4.   LCC-WIN3二、BCB、BC5.02   (較慢) 
固然,我所作的測試比較片面。不過在很大程度上已能反映其大概情況。
相關文章
相關標籤/搜索