Dan*_*age 40 c c++ compiler-construction clang
我以前在C/C++中做过相当多的编程,但是现在它只占我编程的一小部分(脚本语言更适合我做的很多工作).过去几天我参与了一些C编程项目,并且惊讶于我忘记了多少很少的语法细节.更糟糕的是cc/ gcc通常有关于这些问题的含糊不清或无信息的错误消息(抱歉,我不记得任何具体的例子).
我clang不久前就学会了编译器,并决定尝试一下.错误消息更清晰,帮助我识别和修复语法中的问题.我的问题是为什么不使用/提及这个工具比它更多?它是否与通常的嫌疑人(cc/ gcc)相比是如此新颖,还是它不支持他们支持的功能,或者它是否更难获得?我很难相信最后一个,因为它在我的iMac上安装了dev工具,并且需要sudo apt-get install clang在我的Ubuntu盒子上安装一个命令().
nos*_*nos 40
我的问题是为什么不使用/提及这个工具比它更多?
这可能是因为历史,以及我们人类通常如何表现.
传统上,gcc是唯一可以实际用于在至少所有免费*nix克隆上编译C程序的真实(免费)编译器.它实际上是Linux的所有基本系统和内核,*BSD,现在可能是OSX,以及其他编译器.
虽然存在缺陷,但基本上这意味着:gcc可行.如果没有损坏,请不要修理它.除此之外,你现在拥有庞大的用户群,很容易获得gcc的帮助,有很多人使用gcc,正在研究gcc本身等.
一般来说,如果你想把一个庞大的社区从他们习惯的东西转换成其他东西,那么"其他东西"必须"明显"更好.只是"更好"通常不够理智.我想你可以找到在社会的许多领域都有这方面的例子.
clang是更新的,有些人只会怀疑它是否适合任务,是否有错误,如果它产生较慢的代码等等 - 似乎在人性中是可疑的 - 新事物是可怕的.许多人甚至不知道铿锵声,许多人不在乎,因为他们对gcc很满意.
虽然,如果你 更愿意使用clang,那就去吧 - 错误消息确实"更好",而且比gcc更容易理解.
LLVM已经存在了一段时间,但是 - 至少在我的脖子上 - 它最近才刚刚起步,可能是因为苹果公司一直在大力推动用他们自己的工具替换克朗的gcc -链.
此外,我相信它的C++支持最近才成为生产级别.编辑:似乎还没有.(见下面的评论.)
另一个因素可能是LLVM主要由单一供应商提供支持,非Apple开发人员对此有着天生的不信任.
我的问题是为什么不使用/提及这个工具比它更多?与通常的嫌疑人相比,它是否是如此新颖......
这正是原因所在.它仍然是新的,核心功能仍在积极开发中.请记住,现有项目可能正在使用特定于编译器的功能 - 或使用具有这些功能的库 - 并且开发人员无论如何都不愿意为可能存在意外错误或未知性能/大小/等的实验性工具更改工作工具.权衡,即使新工具每天都在变得越来越好.
| 归档时间: |
|
| 查看次数: |
13982 次 |
| 最近记录: |