特別說明:
鑒于時不時的有人問關(guān)于用什么編譯器的問題,我翻譯了Bjarne Stroustrup主頁上compilers欄目的一篇文章,希望對大家有點指導意義。
這個翻譯稿的粘貼過程中失去了所有超級連接(pfan提供的編輯功能不夠好),我只好另外在旁邊附加上,抱歉。
另外,為了避免重復(fù)發(fā)貼,我把本站sarrow原來的相關(guān)文章也復(fù)制過來,供彷徨中的朋友參考。
一個C++編譯器的不完全列表 2008年11月18日更新
我(Bjarne Stroustrup http://www.research./~bs/homepage.html) 常常被提問建議的C++編譯器,但是我不做建議,因為那樣看起來很像站在商戰(zhàn)的某一邊。況且,我并不了解每一個C++編譯器,僅僅知道C++編譯器多如牛毛而已。一般而言,我使用半打(6個)編譯器,但這充其量也僅僅不過是表面文章而已。
我建議人們選用一個編譯器時認真考慮它跟標準的一致程度。如果可能,避免使用任何不太符合ISO標準或者不支持標準庫某項實現(xiàn)的編譯器。所有主要C++編譯器供應(yīng)商的最新版本都做得不錯。 如果你是新手,不知道怎么識別一個編譯器是否合適,試試編譯下面這個程序:
#include<iostream> #include<string> using namespace std;
int main() { string s; cout << "Please enter your first name followed by a newline\n"; cin >> s; cout << "Hello, " << s << '\n'; return 0; // 該返回語句可以不要 }
如果一個編譯器不能處理這么簡單的程序,那它不適合用來學習標準C++。(如果你剪切和粘貼以上代碼,小心#include 指令后的”小于號”).
盡管現(xiàn)在這些細節(jié)問題早已經(jīng)陳舊,這里有一篇很長的文章論述一致性問題 http://www./roundup/a.htm和'的編譯器狀態(tài)頁 http://www./status/compiler_status.html。一致性僅僅是編譯器質(zhì)量的一項指標(產(chǎn)生代碼質(zhì)量、出錯信息、編譯速度、跟開發(fā)工具集成、支持程度、向后兼容這些都是其他衡量指標),不過一致性很重要的一項。使用某供應(yīng)商的語言擴展特性和非標準特性限制了你的代碼可移植性而且妨礙你選擇一個新供應(yīng)商的產(chǎn)品。
大多數(shù)編譯器內(nèi)嵌在軟件開發(fā)工具框架和庫里面。這些框架、環(huán)境和庫對你可能非常有用,但是記住使用它們會把你鎖定到單一供應(yīng)商,而且一些應(yīng)用存在嚴重的運行性能問題。 當在網(wǎng)上尋找C++的時候,你會發(fā)現(xiàn)很多信息”隱藏”在各自產(chǎn)品下面。事實上,我用google.com尋找C++編譯器比直接聯(lián)系C++編譯器供應(yīng)商更方便。在此,忽略市場商標,我列出很多C++編譯器的提供者。
一些編譯器可以免費下載(嘗試商業(yè)應(yīng)用前要看看他們的條件/許可證):
Apple C++ http://developer.apple.com/tools/macosxtools.html. OS X開發(fā)工具CD上也有。
Bloodshed Dev-C++ http://www./devcpp.html. 一個基于GCC(Mingw)的IDE.
Borland C++ http://www./downloads/download_cbuilder.html
Cygwin (GNU C++) http://www./
Digital Mars C++ http://www./
MINGW - "Minimalist GNU for Windows" http://www./. 另外一個GCC for Windows版本,包含了一個免費的(非GPL)w32api。
DJ Delorie's C++ development system for DOS/Windows (GNU C++) http://www./djgpp
GNU CC source http://www./software/gcc/gcc.html
IBM C++ http://www-949.ibm.com/software/rational/cafe/community/ccpp 用于IBM power, System Z, Bluegene, and Cell.
Intel C++ |