Clang 与Xcode捆绑的LLVM版本是什么?

Clang 与Xcode捆绑的LLVM版本是什么?,clang,llvm,xcode7,clang++,llvm-clang,Clang,Llvm,Xcode7,Clang++,Llvm Clang,在Xcode 6之前,当键入clang--version时,我们获得了关于它构建的LLVM版本的信息: Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) 但是现在使用Xcode 7,我们只得到以下内容: Apple LLVM version 7.0.0 (clang-700.0.72) 报告的LLVM版本总是有误导性。“3.6.0svn”表示代码在3.5之后和3.6之前的某段时间被分支。然而,苹果也应用了大量

在Xcode 6之前,当键入
clang--version
时,我们获得了关于它构建的LLVM版本的信息:

Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
但是现在使用Xcode 7,我们只得到以下内容:

Apple LLVM version 7.0.0 (clang-700.0.72)

报告的LLVM版本总是有误导性。“3.6.0svn”表示代码在3.5之后和3.6之前的某段时间被分支。然而,苹果也应用了大量的本地更改和后台bug修复,所以一般来说没有办法与特定的主线版本相关联。这就是为什么他们把它拿走了。事实上,我们需要将Apple提供的clang作为一个单独的编译器(与主线clang相比)。

参见 其中一条有趣的评论说:


查看源代码(src/CMakeLists.txt),AppleClang似乎基于(大约)以下LLVM分支:
clang-700.0.72=>LLVM 3.7.0
clang-700.1.76=>LLVM 3.7.0
clang-700.1.81=>LLVM 3.7.0
clang-703.0.29=>LLVM 3.8.0
clang-703.0.31=>LLVM 3.8.0

维基已经向我们展示了。

实际上,我们可以检查使用的Xcode的swift版本,并在swift llvm中查看llvm版本

对于Xcode 10,swift版本是4.2,从中我们可以得到llvm版本是
6.0.1

if(未定义LLVM\U版本\U主版本)
集合(LLVM_版本_专业6)
endif()
if(未定义LLVM\U版本\U次要)
设置(LLVM_版本_次要0)
endif()
if(未定义LLVM\U版本\U补丁)
设置(LLVM_版本_补丁1)
endif()

而且苹果不应该在clang和swift中使用两个版本的llvm:)

应该会有所帮助


Xcode7.0=>LLVM3.7.0

那么您如何找到支持哪些功能的文档呢?@hadley,它使用uu u feature宏检查特定功能的唯一可靠方法。考虑到整个版本的混乱,我不会相信其他任何东西。你有什么特别感兴趣的“特性”吗?我指的是这个特性,即clang支持什么样的命令行标志。i、 e.你如何达到与之相当的水平
man clang
似乎并不全面。
configure
脚本是一个后备方案,我猜。答案不是错的,但如果您也直接提供答案,则提供链接是可以的,这样即使死链接也不会影响您的答案有效性