C++編譯器推薦目錄
連結:http://www.research.att.com/~bs/compilers.html
作者:Bjarne Stroustrup
譯者:陳希
日期:2004年4月13日
經常有人向我(Bjarne Stroustrup)詢問,能否推薦一個C++編譯器。但是,我不能做這樣的推薦,因為這樣非常容易卷入一場商業戰争。同樣,我也不知道每一種C++編譯器,因為它們有太多的相似的地方。我使用六種C++編譯器來完成基本需要,但是僅僅從表面上來看它們都是參差不齊的。
我建議人們使用和标準嚴格一緻的編譯器。如果你這樣做,就能夠避免編譯器不和ISO标準近似的情況,以及不能使用标準庫的情況。最近一些來自主要C++廠商發行的編譯器都是這樣做的。
如果你是一個新手,不知道如何檢視編譯器的構造,那麼使用下面的代碼:
#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; // this return statement isn't necessary
}
如果編譯器不能處理這段簡單的程式,那麼它就不能作為學習标準C++語言的候選編譯器。
這裡有一篇很長的文章論證編譯器的一緻性,和boost.org的編譯器狀态文章。一緻性是編譯器品質的一部分(産生代碼的品質,錯誤消息,編譯速度,工具內建,支援程度,向後相容,以及其它重要的方面),但卻是很重要的一部分。編譯器廠商對語言的擴充和非标準特性的使用限制了程式的簡捷性,并且可以防止你選擇一個新的編譯器廠商。
目前的編譯器都嵌入到了軟體開發工具和開發庫的架構裡邊。這些架構、環境、庫都非常有用,但是要記住一點是,對這些工具的使用将會使你局限在單一的賣主上,局限在重要的執行性能上。
當在網上尋找C++編譯器時,你可以發現隐藏在幾種産品名稱後的資訊。實際上,使用google.com,我非常幸運的發現了C++編譯器的資訊,這比起從廠商目錄中尋找要好的多。這裡,我選擇了一個C++編譯器的名稱清單,不考慮它們的市場情況。
可以免費下載下傳的編譯器(在試圖進行商業使用時,請檢查它的許可情況):
Apple C++ - 可以從開發者工具CD光牒中的OS X中獲得
Bloodshed Dev-C++ - 基于GCC的(Mingw)IDE環境
Borland C++
Cygwin (GNU C++) MINGW - "Minimalist GNU for Windows". Windows版本的另外一個GCC編譯器,包含了免費的w32api(非GPL許可)
DJ Delorie's C++ development system for DOS/Windows (GNU C++)
GNU CC source
Intel C++ for linux
需要付費的編譯器(有些允許有評估期的免費下載下傳):
Borland C++
Comeau C++ - 支援多平台
Compaq C++
Digital Mars C++
Edison Design Group C++ Front End - 被許多C++編譯器廠商采用
Green Hills C++ - 支援嵌入式系統平台
HP C++
IBM C++
Intel C++ - 支援Windows, Linux, 和其他嵌入式系統
Interstron C++
Metrowerks C++ - 支援多平台,可從Metrowerks首頁上查詢
Mentor Graphics/Microtec Research C++ - 支援嵌入式系統平台
Microsoft C++
Paradigm C++ - 支援x86嵌入式系統
The Portland Group C++ - 針對奔騰CPU優化
SGI C++ - 優化的編譯器
Sun C++
WindRiver's Diab C++ - 用于很多嵌入式系統
對于我要保持這個清單的完整和最新是不可能的。C++世界太大了,太多的事情發生。對于那些遺漏的廠商,我感到非常抱歉,因為我隻知道這些。如果你有一個連結,并且認為應該放在這個清單中,那麼請發送電子郵件給我:[email protected]。此外,我隻羅列了編譯器,我不會評價它們。同樣,他們也不是那種對任何人都是最好的編譯器,是以人們需要對它們進行更多的比較。
其它C++編譯器,請看the open directory project。
更多C++資源,請看my C++ page。