【问题标题】:How can I find the actual Clang version on Mac?如何在 Mac 上找到实际的 Clang 版本?
【发布时间】:2018-10-27 12:51:27
【问题描述】:

注意:Get Apple clang version and corresponding upstream LLVM version 提供的答案似乎都不起作用了。

http://releases.llvm.org/download.html 的下载页面和https://en.wikipedia.org/wiki/Clang 的维基百科文章似乎表明最新的 Clang 版本是 6.0.0。

但在我的 macOS High Sierra 版本 10.13.3 上,我看到了以下输出:

$ clang --version
Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin17.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
$ which clang
/usr/bin/clang

这似乎不对。为什么 Apple 的 Clang 版本比当前版本的 Clang 大?

如何找出我的 Mac 的 Clang 版本对应于 http://releases.llvm.org/download.html 上托管的哪个版本的 Clang?

我问这个是因为我看到http://releases.llvm.org/6.0.0/tools/clang/docs/UsersManual.html 记录了clang 命令行的-pedantic 选项,但它没有记录在我系统上clang 的手册页中。

$ man clang | grep pedantic
$ clang --help | grep pedantic
$

【问题讨论】:

  • 在 Google 上的一个小搜索让我找到了this GitHub Gist page。如果要相信链接的评论,您的 Mac 将使用 Clang 版本 4 或 5。
  • 另外,answer on this SO question 似乎是您所追求的? Apple 似乎重新定义了版本预处理器宏以匹配他们自己的版本控制方案。链接问题的其他一些答案可能会帮助您确定您安装的确切 LLVM 版本。
  • @MaartenBamelis 您链接到的 SO 答案中的链接有:clang: Apple LLVM version 9.0.0 (clang-900.0.37)。这似乎没有提供有关版本的任何附加信息。您是否在该页面中看到任何似乎提供额外信息的内容?
  • 有多个答案建议不同的方法。它们似乎都适用于 Xcode 8.2.1 版;甚至 the Wikipedia page 也无法将更高版本的 Xcode 链接到正确的 LLVM 版本。所以我最好的猜测是,Apple 的版本和从 Xcode 8.3 开始的 LLVM 版本之间没有明确/记录的关系。
  • @MaartenBamelis 所以这是我无法理解的。根据各种来源,我拥有的 Clang 9.1.0 至少基于 Clang 4。Clang 4 具有 -pedantic 选项 documented here。但我的 Clang 似乎没有在 man 页面或 --help 输出中记录 -pedantic

标签: c++ c macos clang version


【解决方案1】:

启动终端并输入:

clang --version

Apple clang 版本 11.0.0 (clang-1100.0.33.16)

【讨论】:

  • 或者 g++ --version 如果你使用的是 g++
【解决方案2】:

这个wikipedia table 将 Xcode 和 Apple clang 版本映射到 LLVM 版本。 您的 clang-902.0.39.1 似乎基于 LLVM 5.0.2。

【讨论】:

    【解决方案3】:

    你可以试试

    echo | clang -dM -E - | grep __clang
    

    也许这会给你更可靠的数字。虽然我在推测,因为我不在 Mac 上。

    此外,clang 长期以来一直使用-pedantic 选项 - 6.0 之前的许多版本。 -pedantic 是 GCC 选项,clang 在其选项中采用 GCC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-23
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多