在* nix下有什么替代gcc来做实际开发吗?

时间:2009-11-09 07:02:27

标签: linux gcc compiler-construction

我曾经听过一个说法,我们可以在没有linux的情况下生活,但我们绝对不能没有gcc。看来,Linux世界中只有一个C编译器。 gcc还有其他选择吗? AIX / HPUX / Solaris下的程序员是否只使用gcc来开发程序?

7 个答案:

答案 0 :(得分:12)

在Linux上肯定至少有一种替代gcc的选择:clang是一个C编译器(以及相关的方言,尽管据我所知,C前端比其他方言更加成熟)利用LLVM。 Apple支持LLVM和Linux的开发。朋友们,我想;这对他们的Grand Central Dispatch / OpenCL的东西很有用,IIRC。

答案 1 :(得分:5)

英特尔有一个“非商业”的C ++编译器here。请务必阅读许可证常见问题here它附带的字符串。

这是list可能会有所帮助。

答案 2 :(得分:5)

如果您正在寻找轻量级和快速的C编译器,TinyCC(另请参阅Wikipedia)绝对值得一看。

但是有一些缺点。它只执行很少的优化,最新的稳定版本仅支持x86架构,尽管开发分支中已经有实验性的x86_64支持。

目前,考虑到TinyCC的这些缺陷,我可能会坚持使用GCC进行任何严肃的计划。

现在TCC可以派上用场的唯一用例是将它用作C代码的解释器。我没有测量过性能,但我可以想象C中的一个小“脚本”可以与Bash代码(在解析和执行速度方面)相媲美。

开发人员甚至成功地实时解释了Linux 2.4内核并立即启动它!周围有一个ISO图像漂浮在Qemu中。

由于GCC基于几十年前的代码,当时对代码结构,适当使用设计模式等知之甚少,GCC开发人员正在维护一个生疏且容易出错的基础。不幸的是,代码很乱,除了完全重写之外别无选择。这也许就是为什么LLVM的开发人员也想出了Clang并从头开始的原因。从长远来看,我真的希望有一个适当的替代GCC,从一开始就从概念上做好一切。 Clang听起来像是一个值得替换的人,尽管我对他们选择使用C ++并不完全感到满意,但那是另一个话题。 :)

答案 3 :(得分:2)

考虑PathScale Path64编译器和Open64。坚实,开源,历史悠久。在高性能计算中颇受欢迎,也是学术研究的良好平台。

https://github.com/path64/compiler

http://www.open64.net/

答案 4 :(得分:2)

还有libfirm / cparser实现大多数gcc扩展并生成优化代码(目前用于x86 32位和sparc):http://pp.ipd.kit.edu/firm/

答案 5 :(得分:1)

Sun Studio 12现在可用作Linux的free download(至少X86版本)和所有Solaris版本。我不知道编译器的X86 / Linux版本如何比较,但Sparc / Solaris版本的编译器能够生成比GCC更优化的代码,并且调试器比GDB强大得多。缺点是你会遇到一个缓慢的基于Java的GUI用于调试器。

答案 6 :(得分:0)

就C编译器而言,如果没有gcc,我将无法做到。但C并不是镇上唯一的游戏。我经常将快速的小应用程序放在Python中,将更复杂的桌面应用程序放在Java中(Sun的一个,而不是gcj)。

我不会为申请选择您的语言。这是一个更好的选择,选择你的应用程序,然后用适合的语言。如果您知道C,那就使用它。但我发现Java(和Python)中庞大的数据结构和算法库对于快速编写代码非常宝贵。

我对HPUX或Solaris了解不多,但即使在AIX上,我也更喜欢使用gcc而不是IBM编译器xlC。