【问题标题】:What is the LLVM version bundled with Xcode?Xcode 捆绑的 LLVM 版本是什么?
【发布时间】:2016-01-04 07:16:14
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 那么您如何找到有关支持哪些功能的文档?
      • @hadley,它使用 __has_feature 宏检查特定功能的唯一可靠方法。考虑到整个版本的混乱,我不会相信其他任何东西。你有什么特别感兴趣的“功能”吗?
      • 我指的是clang支持哪些命令行标志的功能。即你如何达到clang.llvm.org/docs/UsersManual.html的等价物? man clang 似乎并不全面。
      • configure 脚本是后备,我猜。
      【解决方案3】:

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

      其实我们可以查看Xcode使用的swift版本,在swift-llvm中查看llvm版本

      对于Xcode 10,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 :)

      【讨论】:

      • 不是说答案错了,但是如果你也直接提供答案,提供链接是可以的,这样即使死链接也不会影响你的答案有效性
      【解决方案4】:

      wiki of xcode 应该会有所帮助。

      Xcode7.0 => LLVM3.7.0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 2014-12-12
        • 2017-01-21
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多