2013-08-05 42 views
5

还有类似的问题this但我不满意答案。clang和clang-mp-3.3(3.2或3.4)有什么区别?

我试过安装clang。在尝试安装铛后,我结束了两个铛声。 一个是/ usr /斌/铛或铛++等/opt/local/bin/clang-mp-3.3或铛++ - MP-3.3(这是我从macport安装)

它们作用相同,当我编译简单的程序但是当我尝试编译其他大而复杂的C++代码时,情况会有所不同。我尝试阅读documentation以获得一些概述。

从这里ticket我可以知道macport clang更接近gcc。我知道,铿锵做前端工作(作为C语言解释器)和llvm是后端。什么和如何差异首先出现?感谢您的时间。

回答

1

TL; DR:如果它们在llvm版本方面足够接近,那么它们的行为应该类似(可能在其中一个上增加了优化/功能)。但是没有任何信息可以用来找出你的意思。

从我看到的Portfile中,{llvm,clang} -3.4端口(以及其他类似的端口,我假设)安装了简单的llvm和/或clang。

例如:最新发布的Xcode随附:

Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin13.2.0 
Thread model: posix 

苹果并没有告诉我们具体的版本号,但我们知道他们的私人铛是基于LLVM的修订分支树干之间2013年中和2014年初。

我也不明白你的意思是“macport clang更接近gcc”。这似乎没有任何意义,但我可能会误解。苹果公司的铛声已经非常接近主流砰砰声AFAIK。他们有他们的版本,这是基于未知的版本,但仍然。

铛是 llvm项目的C前端。它由llvm社区引导,所有(公共)工作都发生在主要llvm存储库(在clang的目录中)。但是你仍然可以安装llvm而无需clang,或者没有(大部分?)其他llvm实用程序的clang。这就是为什么你在macports上为clang和llvm分开包的原因。

你为什么说他们的行为不同,他们的行为有多不同?你用相同的选项编译?哪个?它们是否来自同一版本,比如3.3和3.3svn(这只意味着它们最多只有6个月,它们不会使它们成为完全相同的版本)?