Xcode 捆绑的 LLVM 版本是什么?

What is the LLVM version bundled with Xcode?

输入 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)

报告的 LLVM 版本总是具有误导性。 “3.6.0svn”表示代码在 3.5 之后和 3.6 之前的某个时间分支。但是,Apple 还应用了一系列本地更改和向后移植错误修复,因此通常无法与特定的主线修订相关联。这就是他们删除它的原因。实际上,需要将 Apple 提供的 clang 视为一个单独的编译器(与主线 clang 相比)。

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

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

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

中查看llvm版本

对于Xcode10,swift版本是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 :)

wiki of xcode 应该会有帮助。

Xcode7.0 => LLVM3.7.0