到目前为止,我一直在使用 gcc、g++ 进行 C、C++ 应用程序开发,并且发现它非常棒。但是浏览 Stack Overflow 时,我发现许多成员表示 Comeau 编译器中的错误报告比任何其他编译器都要多。这是真的?我没有投资编译器的任何商业版本。当 gcc、g++ 发挥作用时,花钱购买 C/C++ 编译器的商业版本真的值得吗?
6 回答
Comeau 编译器的杀手级特性是它的一致性(包括 C++03!)和出色的错误报告。
也有一种在线方式可以尝试: http: //www.comeaucomputing.com/tryitout/
如果这些功能对您来说值得,那么 Comeau 编译器绝对值得。
向 Comeau 编译器致敬!
我编写 C++ 的经验是,使用多个编译器编译代码是在代码中找到奇怪的极端情况的好方法。在我们的例子中,我们使用了 gcc、Apple gcc 和 Visual Studio 编译器 cl(它是免费的)。在 Windows 上,我更喜欢 cl 编译器,因为它编译速度更快(对我们来说大约快 5 倍)并且它生成更好的代码(我上次检查时快了大约 30%)。哪个编译器生成最快的代码总是取决于应用程序。在我们的特殊情况下,与流行观点相反,英特尔编译器并不擅长生成快速代码,因此没有真正的动机使用它。
如果我们有钱可以花钱,使用 Comeau 编译将有助于额外检查标准一致性。除此之外,我对我们使用的编译器很满意。
Comeau 的编译器主要有三个用途:
针对只有 C 编译器的平台
拥有一个具有良好一致性声誉和良好错误消息的附加编译器
试验只有它才有的功能(例如,试验导出的模板是我多年前购买它的原因)
请注意,调试不是用途之一。它生成 C 代码,然后由 C 编译器编译。它使用#line 指令,这样您就可以在代码中一步一步地进行,但要做得更多,您将遇到与使用 C 作为中间语言调试任何语言时相同的问题:调试器不知道约定的起始语言。
如果您对 gcc 工具感到满意,请坚持使用它们。不要修复没有损坏的东西。很多人每天都在使用它们,而且它们当然非常好。
也就是说,gcc 被批评为“每次发布都变慢并创建蹩脚的代码”。不知道“垃圾”,但我们一直在使用硬件供应商特定(例如英特尔)编译器编译时间关键部分。与 gcc 相比,它们确实在某些情况下创建了更快的代码。但通常差异并不重要。
我倾向于说不,g++ 是一个很棒的编译器,有一个庞大的社区支持它,除非你想要它提供的支持,否则真的不需要切换到商业编译器,除非你是一个大型开发人员可能不会。在 Windows 上使用 g++ 和 VS Express,真的没有必要为编译器花钱。花费您的金钱/时间的更好的地方!
我相信 Comeau Release 版本相当稳定。当您购买商业 C/C++ 编译器时,您将主要为特定功能付费。您应该决定是否需要这些功能。
如果您没有特殊要求,GNU C/C++ 编译器是一个不错的选择。