至少有一些明显的候选人:
VC++:从 VC++ 2010 开始支持一些 C++11 特性。VC++11(目前处于 beta 测试阶段)增加了一些。具有相当不错的代码生成,很多人认为是您可以获得的最好的调试器,以及产生相当混合评论的 IDE。许多使用过它们的人认为老一代的 IDE(VC++5 和 6)至少在某些方面更好,但是从那以后编译器已经有了很大的改进,以至于老的 IDE 确实不是大多数人的选择(除了支持古代代码)。
MinGW:STL 的当前包具有 gcc 4.7.0,它(至少可以说)比 VC++ 具有更好的 C++11 支持。它包括很多移植的 Unix/Linux 工具,但基本上是一个仅限命令行的环境。如果您想要 IDE 之类的东西,则必须单独安装/配置它。
Cygwin:这也是基于 gcc 的,但他们没有将编译器移植到 Windows,而是将 Linux 移植到 Windows,并在移植的 Linux 上运行编译器。显然我夸大了(有点)但不是很多——Cygwin 主要是在 Windows 上运行 Linux/Unix 代码,尽可能少做改动。他们发布的工具也适合这一点——它正在尽最大努力成为在 Windows 内核下运行的类 Unix 环境。它绝对不会是我进行任何新开发的首选。
Qt Creator/SDK:这是 gcc 的另一个封装,但带有一个 IDE。如果您想使用 Qt 编写代码,它可能是您的首选。否则,我可能会避免它——虽然它可能可以正常工作,但它是在假设 Qt 作为默认值的情况下编写的。
Eclipse/CDT:您也可以找到它与 g++ 的副本一起打包。至少在我上次尝试的时候,它需要在配置上做很多工作,才能让它正确编译。如果您将 Eclipse 用于其他目的,那么将其用于 C++ 可能是值得的。否则,我个人会避免它。
C++ Builder:在 Borland 时代,这是微软主导地位的最大挑战者。Embarcadero 似乎正试图让它重新回到主流。这里的重点似乎更多地放在 IDE、GUI 工具包等上,而不是编译器本身。编译器本身似乎有点落后于 gcc 和/或 VC++。入门版的价格为 150 美元,并且将输出的销售额限制为 1000 美元,此时您需要将 1000 美元的大部分用于升级到专业版。
Clang:最近开始的主要编译器,但真正致力于成为最好的编译器之一。具有任何可用编译器的一些最佳诊断。以 LLVM 为目标,它为它提供了多种用于运行时分析等的工具。不过,它的主要企业赞助商是 Apple,因此虽然它在 Windows 上的 OS/X 上开箱即用(现在是那里的默认编译器),但您需要自己做更多的事情——AFAIK,您需要一些其他编译器安装并工作(并且真的知道如何使用它)来安装它。在 Windows 上,这有点像从垃圾场买一辆肌肉车。通过足够的工作,您最终可能会得到城里最酷的汽车——但在 Windows 上,它目前更像是一个项目而不是一个工具。
通常要避免的还有一些:
- 大约 2008 年之前的任何版本的 VC++。只是 C++ 的低级实现。
- 4.x 之前的任何 g++ 版本。同样,C++ 的低级实现。
- djgpp:几乎是最糟糕的。这确实针对带有(自定义)DOS 扩展器的 MS-DOS。一个古老版本的 gcc 完善了它的可怕之处。
- OpenWatcom:也主要针对 MS-DOS。它使用了一个比 djgpp 更好的 DOS 扩展器,但微弱的赞美几乎是该死的。编译器甚至不是非常接近于符合 C++98;C++11 更新让我觉得不太可能很快(如果有的话)。
- 数字火星:Walter Bright 现在主要使用他自己的 D 语言。尽管 C++ 编译器仍然可用,但它编译的 C++ 已经相当过时了。
总结:如果你想要一个 IDE,VC++ Express 是明确的选择。如果您更关心最新的 C++11 功能并且不介意从命令行工作,那么 MinGW 可能是首选。其他的肯定有利基,但如果你的目标主要是新的、编写可移植的 C++,我会认为它们中的大多数都逊色。