如何正確運(yùn)行C++編譯器
下面的文章里主要學(xué)習(xí)對(duì)C/C++編譯器的學(xué)習(xí)還有一些別的編譯器,其中包括其它的編譯器如JAVA,F(xiàn)ortran,ADA等。它是一個(gè)編譯器集合,不過(guò)有些編譯器只能在UNIX系統(tǒng)上用。
GNU C++g++是一個(gè)開(kāi)源的C++編譯器,GCC3.3對(duì)標(biāo)準(zhǔn)化C++的支持達(dá)96.15%。值得一提的是,gcc是gnu c的編譯器, g++是gnu c++的編譯器, 而egcs(Enhanced GNU Compiler Suite)可以認(rèn)為是gcc的改進(jìn)版。
目前gcc已經(jīng)改名,從原來(lái)代表GNU C Compiler改變?yōu)榇鞧NU Compiler Collection。而MinGW或Cgywin,是在windows平臺(tái)上的gnu c/c++編譯器,以及庫(kù)文件,運(yùn)行環(huán)境的集合Borland C++該編譯以速度快、空間效率高而著稱(chēng)。它的5.5版本對(duì)標(biāo)準(zhǔn)化C++的支持達(dá)92.73%,而官方稱(chēng)100%符合ANSI/ISO的C++標(biāo)準(zhǔn)和C99標(biāo)準(zhǔn)。
它是Borland公司開(kāi)發(fā)的,是Borland C++ Builder和Borland C++ Builder X這兩種IDE的后臺(tái)編譯器。Visual C++VC++6.0對(duì)標(biāo)準(zhǔn)化C++的兼容僅達(dá)83.43%。它是Visual Studio、Visual Studio.net 2002、Visual Studio.net 2003、Visual Studio.net 2005的后臺(tái)C++編譯器。隨著Stanley Lippman等編譯器設(shè)計(jì)大師的加盟,它變得非常成熟可靠了。Visual C++ 7.1對(duì)標(biāo)準(zhǔn)C++的兼容性達(dá)到98.22%。
在GCC家族中GNU GCC是根本,其它的編譯器版本都是從它導(dǎo)出的。其中,Cygwin和Mingw32都是WIN32平臺(tái)下的編譯器,DJGPP是DOS下的32位編譯器。大家所熟知的DEV-C++充其量只是GCC的一個(gè)外殼,它所自帶的編譯器就是Mingw32的一個(gè)版本。
這些GCC的版本中,Cygwin是最大的,它與其說(shuō)是一個(gè)編譯器,倒不如說(shuō)是一套編程工具。它不僅有編譯器,還有其它很多的工具。其實(shí),它就是一個(gè)UNIX系統(tǒng)在WIN32平臺(tái)上的實(shí)現(xiàn)。實(shí)現(xiàn)了大多常用的UNIX工具,最近的版本中連Apache這樣的“工具”都集成進(jìn)來(lái)的。不過(guò),Cygwin雖然功能強(qiáng)大,但它卻不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因?yàn)樘嗥渌墓ぞ叻稚⒘巳藗兊淖⒁饬Α?/P>
相比之下Mingw32就要好用得多,它只有最基本的幾個(gè)編程工具(只可惜它不自帶GDB)。GCC中并不只是C/C++編譯器,其中還有很多其它的編譯器如JAVA,F(xiàn)ortran,ADA等。它是一個(gè)編譯器集合,不過(guò)有些編譯器只能在UNIX系統(tǒng)上用。MS家族的編譯器就不用說(shuō)了,大家對(duì)它們都很熟悉。VC 7.0(VC.NET)是它的最新產(chǎn)品。Borland家族也不用說(shuō),大家也是耳熟能詳。最近它才推出了BCB 6.0。
其它的編譯器如:Intel C/C++大家一看名稱(chēng)就知道是Intel的東西,它和VC6完全兼容,不過(guò)要掛在VC6下才能用。Watcom C/C++是早先編譯器四國(guó)大戰(zhàn)中的一員,原本是很不錯(cuò)的東西,可惜戰(zhàn)略不對(duì),現(xiàn)在已不見(jiàn)聲息了。倒是以它為基礎(chǔ)的一個(gè)OpenWatcom現(xiàn)在還在奮戰(zhàn)。VectorC是我近日才發(fā)現(xiàn)的一個(gè)好東東,它是個(gè)純C的編譯器。IBM的VisualAge for C++原本是IBM想用來(lái)淌C++編譯器這片渾水的東西,不過(guò)IBM的戰(zhàn)略改了,它就被放棄了。
DigitalMars C/C++的前身的Symantec C++(它也是編譯器四國(guó)大戰(zhàn)中的一員),不過(guò)現(xiàn)在Symantec不做了,于是它的作者就把它改成了DigitalMars C/C++開(kāi)放給大家使用。以上這些都是WIN32平臺(tái)上的東西。#t#
KAI C/C++是個(gè)很強(qiáng)大的C/C++編譯器,它是個(gè)多平臺(tái)的編譯器。不過(guò)現(xiàn)在被INTEL收購(gòu)了,已經(jīng)停止開(kāi)發(fā)了。Lcc4.1是個(gè)純C的編譯器它是開(kāi)放源代碼的。不過(guò)不怎么好用。LCC-WIN32是一個(gè)在LCC基礎(chǔ)上開(kāi)發(fā)的C語(yǔ)言的集成開(kāi)發(fā)環(huán)境,很好用,而且有很詳細(xì)的資料,F(xiàn)REE!Pacific C是一個(gè)純DOS的C的集成開(kāi)發(fā)環(huán)境,就不多說(shuō)了。Small C CC386都是開(kāi)放源代碼的編譯器,它們都很簡(jiǎn)單,應(yīng)用來(lái)給大家學(xué)習(xí)編譯器的。
Quincy Eic CINT都是C的解釋器,是用來(lái)讓大家學(xué)習(xí)C語(yǔ)言的其中CINT的功能很強(qiáng)大,還支持一些C++的特性。 當(dāng)然還有很多其它的編譯器,這里我給出的編譯器都是可以在WIN32或DOS平臺(tái)上用的(除KAI外)。UNIX平臺(tái)上的編譯器還是以GNU的為主,其它的我就不是很清楚了。






