【问题标题】:Which is the most optimal C/C++ compiler? [closed]哪个是最优化的 C/C++ 编译器? [关闭]
【发布时间】:2012-06-21 21:42:12
【问题描述】:

我一直在用 gcc 编译我的 C/C++ 代码,但是直到最近我才意识到它并不是唯一的免费编译器。

我一直在玩切换,因为其中一些其他编译器,尤其是 clang,似乎显示出很多希望。我对我的编译器的标准是立即符合 C99 标准,随着标准变得越来越普遍,更多的标准,以及它是免费和开源的,并尽可能优化地编译我的代码。快速编译对我来说不是那么重要,但总是一个很好的加分项。也就是说,如果有任何编译器看起来很快就会超过 gcc,我想知道现在是否值得为了学习而切换。

我将主要使用它来编译 C++ 代码,所以这对我来说优先于 C。我将在 linux 上为 linux 构建,所以一个好的 CLI 是必须的。只要二进制文件质量好,我不介意某种程度的不稳定性。

【问题讨论】:

标签: gcc llvm gpl clang


【解决方案1】:

没有适合所有项目、目的和期望的最佳编译器。

  • 每个项目(包括像 gccllvm 这样的编译器项目)的优先级略有不同(例如,支持最新的语言标准、标准纯度与性能、编译性能与运行时性能等)。李>
  • 有许多基准和比较方法。然而通常情况下,如果一个人在编译一个程序时获胜(对于胜利的任意定义),通常存在另一个程序,而另一个编译器获胜(对于胜利的相同定义)。
  • 当使用不同的优化选项时,前一点也适用于同一编译器。一些优化有时(希望更频繁:-)会有所帮助,但有时(对于其他代码)它们实际上会损害性能。
  • 由于没有使用相同级别的优化等,编译器基准也总是受到批评,因为比较文章的某些读者实际上总是希望其他方面成为基准。这是因为每个编译器都有不同的默认优化级别,在不同的优化级别上使用不同的优化,相同的优化在不同的编译器中实现的方式不同,有些优化根本只在某些编译器中支持。
  • 不同平台或 CPU 型号的结果也可能不同。
  • gccllvm 都非常活跃,因此在发布时,它们之间的任何比较都已经过时了。

这一切还导致开发人员也将他们的个人(不)喜欢投射到一个或其他编译器上,有时会导致激烈的战争。所以你能得到的唯一答案是:“视情况而定。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 2015-06-16
    • 2020-09-20
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多