天天看點

C++編譯器推薦目錄

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。