一个C++编译器的不完全列表(翻译版)
副标题#e#
经C++首创人Bjarne Stroustrup博士同意,我翻译了这篇文章并贴在这里,供选择编译器的伴侣参考。接待转载,转载请注明出处。
英文版原文在http://www.research.att.com/~bs/compilers.html
我(Bjarne Stroustrup) 经常被提问发起的C++编译器,可是我不做发起,因为那样看起来很像站在商战的某一边。何况,我并不相识每一个C++编译器,仅仅知道C++编译器不足为奇罢了。一般而言,我利用半打(6个)编译器,但这充其量也仅仅不外是外貌文章罢了。
我发起人们选用一个编译器时当真思量它跟尺度的一致水平。假如大概,制止利用任何不太切合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; // 该返回语句可以不要
}
假如一个编译器不能处理惩罚这么简朴的措施,那它不适适用来进修尺度C++.(假如你剪切和粘贴以上代码,小心#include 指令后的“小于号”)。
尽量此刻这些细节问题早已经陈旧,这里有一篇很长的文章阐述一致性问题和boost.org’的编译器状态页。一致性仅仅是编译器质量的一项指标(发生代码质量、堕落信息、编译速度、跟开拓东西集成、支持水平、向后兼容这些都是其他权衡指标),不外一致性很重要的一项。利用某供给商的语言扩展特性和非尺度特性限制了你的代码可移植性并且故障你选择一个新供给商的产物。
大大都编译器内嵌在软件开拓东西框架和库内里。这些框架、情况和库对你大概很是有用,可是记着利用它们会把你锁定到单一供给商,并且一些应用存在严重的运行机能问题。
当在网上寻找C++的时候,你会发明许多信息“埋没”在各自产物下面。事实上,我用google.com寻找C++编译器比直接接洽C++编译器供给商更利便。在此,忽略市场商标,我列出许多C++编译器的提供者。
一些编译器可以免费下载(实验贸易应用前要看看他们的条件/许可证):
·Apple C++. OS X开拓东西CD上也有。
http://developer.apple.com/tools/macosxtools.html
·Bloodshed Dev-C++. 一个基于GCC(Mingw)的IDE.
http://www.bloodshed.net/devcpp.html
·Borland C++
http://www.borland.com/downloads/download_cbuilder.html
·Cygwin (GNU C++)
http://www.cygwin.com/
·Digital Mars C++
http://www.digitalmars.com/
·MINGW – "Minimalist GNU for Windows". 别的一个GCC for Windows版本,包括了一个免费的(非GPL)w32api.
http://www.mingw.org/
·DJ Delorie’s C++ development system for DOS/Windows (GNU C++)
http://www.delorie.com/djgpp
·GNU CC source
http://www.gnu.org/software/gcc/gcc.html
·IBM C++ 用于IBM power, System Z, Bluegene, and Cell.
http://www-949.ibm.com/software/rational/cafe/community/ccpp
·Intel C++ for linux
http://www.intel.com/software/products/compilers/clin/noncom.htm
·The LLVM Compiler Infrastructure (基于GCC)。
http://llvm.cs.uiuc.edu/
·Microsoft Visual C++ 2008 Express edition.
http://www.microsoft.com/express/vc
#p#副标题#e#
·Sun Studio.
http://developers.sun.com/sunstudio
一些编译器需要付出用度(有些答允试用期内免费下载):
·Borland C++
http://www.borland.com/bcppbuilder/
·CodeWarrior C++ (正式名字是Metrowerks),支持许多平台
http://www.metrowerks.com/products/macos/
·Comeau C++支持许多平台
http://www.comeaucomputing.com/
·Edison Design Group C++ Front End – 许多C++编译器供给商利用它
http://www.edg.com/cpp.html
·Green Hills C++用于许多嵌入式系统平台
http://www.ghs.com/products/optimizingC++EC++Compilers.html
·HP C++ for Unix和HP C++ for OpenVMS.
http://www.hp.com/go/cpp/
http://h71000.www7.hp.com/commercial/cplus/cplus_index.html
·Intel C++支持Windows, Linux, 和一些嵌入式系统
http://www.intel.com/software/products/compilers/
·Mentor Graphics/Microtec Research C++用于许多嵌入式系统平台
http://www.mentorgraphics.com/embedded/compilers/index.html
·Microsoft C++
http://msdn.microsoft.com/visualc
·Paradigm C++, 用于x86的嵌入式系统
http://www.devtools.com/
·The Portland Group C++(用于奔驰架构处理惩罚器的并行)
http://www.pgroup.com/prodworkpgcc.htm
·SGI C++, 优化编译器
http://www.sgi.com/products/software/irix/tools/c++.html
·Sun C++
http://www.sun.com/forte/cplusplus/index.html
·WindRiver’s Diab C++, 许多嵌入式系统利用。
http://www.windriver.com/products/
#p#分页标题#e#
对付我而言,让该列表完整和保持最新状态不太大概。C++世界太大,新对象呈现太快。对付那些我未能列出来的供给商暗示歉意,我知道会有一些,假如你有一个毗连并认为应该在此列出来的话,请给我写信:bs at research.att.com.再次重申:我仅仅列出编译器,我并不是赞成它们。并且对付每小我私家而言,没有哪种编译器最好,差异的人有差异的需要。
C++编译器的其他列表:
The open directory project.
http://dmoz.org/Computers/Programming/Languages/C%2b%2b/Compilers/
Compilers.net:免费的C和C++编译器列表。
http://www.compilers.net/Dir/Free/Compilers/CCpp.htm
一个过滤器可以用来改进许多编译器的错误信息,见STLfilt.