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

Jic*_*hao 16 linux compiler-construction gcc

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

RAO*_*AOF 12

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


Ana*_*hah 5

英特尔在这里有一个"非商业"的C++编译器.请确保您在此处阅读了许可证常见问题,但附带了字符串.

这是一个可能有所帮助的列表.


use*_*268 5

如果你正在寻找一个轻量级和快速的C编译器TinyCC(另见维基百科)绝对值得一看.

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

就目前而言,考虑到TinyCC的这些缺陷,我可能会坚持使用GCC来处理任何严肃的程序.

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

开发人员甚至成功地实时解释了Linux 2.4内核并立即启动它!有一个ISO图像浮动,在Qemu中完美运行.

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

  • "我崇拜设计模式的祭坛".迟早,你可能会发现并非所有东西都是设计模式,它们不能用于*所有*.编译器本质上是毛茸茸的.所以...也许这是一团糟.不,不是.这是一团糟.但是,手工制作"设计模式"和一个定义较少的"代码结构"并不能解决这个问题,因为其中一些混乱(大多数情况下,我打赌)*必须是那样*.或者看看Linux内核的"混乱".哦,我忘记了:就是这样,因为那些Linux怪胎对正确的软件开发一无所知.必须,教授告诉我. (2认同)