我曾经听说过这样一句话:我们可以没有 Linux,但绝对不能没有 GCC。似乎在 Linux 世界中只有一个 C 编译器。是否有其他替代 GCC 的选择?AIX/HPUX/Solaris 下的程序员是否只使用 GCC 来开发程序?
我曾经听说过这样一句话:我们可以没有 Linux,但绝对不能没有 GCC。似乎在 Linux 世界中只有一个 C 编译器。是否有其他替代 GCC 的选择?AIX/HPUX/Solaris 下的程序员是否只使用 GCC 来开发程序?
如果你正在寻找一个轻量级快速的C编译器,TinyCC(也可以参见维基百科)绝对值得一看。
然而,它也有一些缺点。它只执行非常少的优化,而最新的稳定版本仅支持x86架构,尽管在开发分支中已经有了实验性的x86_64支持。
考虑到TinyCC的这些缺陷,就目前而言,我可能会选择GCC来编写任何严肃的程序。
唯一TCC真正方便的用例是将其用作C代码的解释器。我没有测量过性能,但我可以想象,使用C语言编写的小型“脚本”可以顺畅地与Bash代码竞争(在解析和执行速度方面)。
开发人员甚至成功地实时解释了Linux 2.4内核并立即启动!有一个ISO映像在Qemu中可以完美运行。
由于GCC基于几十年前的代码,当时对于代码结构、设计模式等知识了解不多,因此GCC开发人员正在维护一个生锈且容易出错的基础。不幸的是,代码混乱无序,没有替代方案,只能进行完全重写。这也可能是LLVM开发人员推出Clang并从头开始的原因。从长远来看,我真的希望有一个合适的GCC替代品,从一开始就做到概念上的正确性。虽然Clang听起来像是一个值得推荐的替代品,但我对他们选择使用C++并不完全满意,但这是另一个话题。 :)还有libfirm/cparser,它实现了大部分gcc的扩展,并生成优化代码(目前适用于x86 32位和sparc):http://pp.ipd.kit.edu/firm/