什么是与Xcode捆绑在一起的LLVM版本?

时间:2015-10-07 07:03:22

标签: clang llvm xcode7 clang++ llvm-clang

在键入clang --version时最多为Xcode 6,我们获得了有关它的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)

4 个答案:

答案 0 :(得分:5)

参见https://gist.github.com/yamaya/2924292 其中有一条有趣的评论说:

Looking at the sources (src/CMakeLists.txt), it appears AppleClang is based on (approximately) the following LLVM branches: 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

答案 1 :(得分:4)

报告的LLVM版本总是具有误导性。 " 3.6.0svn"表示代码在3.5之后和3.6之前的某个时间分支。但是,Apple也会应用大量本地更改和后端错误修复,因此通常无法与特定主线修订相关联。这就是他们删除它的原因。实际上,需要将Apple发布的clang作为单独的编译器处理(与主线clang相比)。

答案 2 :(得分:1)

维基已经向我们展示了。 https://en.wikipedia.org/wiki/Xcode#Latest_versions

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

对于Xcode 10,快速版本是4.2,从CMakeLists.txt我们可以得到llvm版本是6.0.1 if(NOT DEFINED LLVM_VERSION_MAJOR) set(LLVM_VERSION_MAJOR 6) endif() if(NOT DEFINED LLVM_VERSION_MINOR) set(LLVM_VERSION_MINOR 0) endif() if(NOT DEFINED LLVM_VERSION_PATCH) set(LLVM_VERSION_PATCH 1) endif()

Apple不应该在clang和swift中使用llvm的两个版本:)

答案 3 :(得分:1)

wiki of xcode应该会有所帮助。

Xcode7.0 => LLVM3.7.0