在我的 Mac OS X 版本(10.7.1(Lion)和 Xcode 4.1)上,有 LLVM 3.0svn 和 Clang 2.1。 当前版本是 LLVM 3.0 和 Clang 3.0。
从Xcode网站来看,最新版本(4.2.1)似乎仍然使用LLVM 2.0,这似乎是一个错误。
如果安装最新的 Xcode,我会获得更新版本的 LLVM/Clang 吗?
NetBeansApple 尚未更新到开源组件的最新尖端版本通常有充分的理由,例如严重的错误。
如果您不需要 Apple 提供的修改并且不介意生活在边缘 - 即,没有来自 Apple 的支持并且可能(重新)发现已知问题 - 并且不打算将编译的文件发送到其他人的系统,您
可以安装自己的版本,例如,/usr/local/bin
或使用第三方包管理器,例如
MacPortshttp://www.macports.org/ports.php?by=name&substr=clang )。 您绝对不应该尝试替换 Xcode 安装路径中的文件。 值得吗?只有你才能决定。
该网站不正确。 Xcode 4.2.1 和 4.2 包括 LLVM 3.0 和 Clang 3.0:
Apple clang 版本 3.0 (tags/Apple/clang-211.12)(基于 LLVM 3.0svn)
clang++ --版本建议不要更换Apple clang 版本 3.0 (tags/Apple/clang-211.12)(基于 LLVM 3.0svn)
llvm-g++ --版本
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1(基于 Apple Inc. 版本 5658)(LLVM 版本 2336.1.00)
llvm-gcc --版本
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1(基于 Apple Inc. 版本 5658)(LLVM 版本 2336.1.00)
我强烈
您将看到的许多构建过程(例如 Xcode)都依赖于 Apple 特定的扩展。例如,上次我检查苹果有他们自己的链接器。 此外,Linux 不强制执行二进制兼容性——通常,人们从源代码构建软件,或者为每个操作系统版本下载特定的二进制文件。作为最终用户(而不是开发人员/专业用户)操作系统,macOS 竭尽全力保持与旧版 macOS 版本上构建的二进制文件的兼容性。
更换编译器,或更糟糕的是,更换系统库,将破坏这些兼容性保证。它还可能以微妙、不明显的方式破坏您的系统。
但是
可以随意安装 clang 的第二个副本,并探索新功能,但不要管系统编译器。
另请注意,Apple 不支持向应用程序商店提交不是使用 Xcode 及其包含的编译器构建的软件。虽然这样做可能会被忽视,但如果您的编译器无法执行 Apple 编译器所做的任何操作,您可能会在应用程序商店审核期间被拒绝。
OS X 更新版本 10.9.2(Mavericks) 将 Xcode 带到版本 5.1 (5B130a),并将 Clang 带到最新稳定版本(适用于 OS X):
在我的 Mac 上,llvm-gcc 和 llvm-g++ 是此 Clang 的符号链接:
Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix
我最新的R
安装配置为使用llvm-gcc-4.2,这会在构建SHLIB时导致错误。
以同样的方式为 llvm-gcc-4.2 和 llvm-g++-4.2 创建符号链接,而不是替换 LLVM 或 CLANG
您也可以从 App Store 或 Apple 开发者帐户直接下载更新 Lion 的 Xcode,并安装命令行工具,这会将 Clang 和 LLVM 更新到上述版本。
对我来说,我正在使用 macPorts 来升级 clang 版本:
$ clang --version
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix
$ clang++ --version
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix
$ llvm-g++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ llvm-gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
sudo port install clang-16
sudo port select --set clang mp-clang-16