【发布时间】: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。