如何更新LLVM&在Mac OSX上铿锵?

时间:2011-12-29 23:08:36

标签: xcode macos osx-lion llvm clang

在我的Mac OSX版本(Lion 10.7.1,XCode 4.1)上,有LLVM 3.0svn和Clang 2.1。 current versions是LLVM 3.0和Clang 3.0。

XCode web site开始,似乎最新版本(4.2.1)仍然使用LLVM 2.0,这似乎是一个错误。

您知道如果安装最新的XCode,我会得到更新版本的LLVM / Clang吗?

您知道任何可能的问题installing Clang manually吗?

安装完成后,我所有的IDE(例如NetBeans)会自动使用新的Clang吗?

6 个答案:

答案 0 :(得分:8)

网站不正确。 Xcode 4.2.1和4.2包括LLVM 3.0和clang 3.0:

  clang --version
  Apple clang 3.0版(标签/ Apple / clang-211.12)(基于LLVM 3.0svn)

     

clang ++ --version
  Apple clang 3.0版(标签/ Apple / clang-211.12)(基于LLVM 3.0svn)

     

llvm-g ++ - version
  i686-apple-darwin11-llvm-g ++ - 4.2(GCC)4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.1.00)

     

llvm-gcc --version
  i686-apple-darwin11-llvm-gcc-4.2(GCC)4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.1.00)

答案 1 :(得分:7)

软件供应商传统上保守地更新构建工具并且有充分的理由。如果您想使用Apple提供和修改的最新公开支持的构建工具版本,您应该坚持使用最新版本的Xcode来运行您正在运行的OS X版本。苹果还没有更新到最新的开源组件的最新版本,例如严重的错误,这通常是有充分理由的。如果您不需要Apple提供的修改并且不介意生活在边缘 - 即没有Apple的支持并且可能(重新)发现已知问题 - 并且不打算将编译的文件发送到其他人的系统,那么可以安装您自己的版本,例如/usr/local/bin或使用第三方软件包管理器,例如MacPorts http://www.macports.org/ports.php?by=name&substr=clang)。你绝对应该尝试替换Xcode安装的路径上的文件。这值得么?只有你可以决定。

答案 2 :(得分:6)

您可以使用homebrew轻松构建自己的LLVM:

brew install llvm

如果您需要特定版本,还有版本化软件包:

  • llvm@3.7
  • llvm@3.8
  • llvm@3.9
  • LLVM @ 4

答案 3 :(得分:2)

我强烈建议不要替换在macOS上的系统编译器:

您会看到许多构建过程(例如Xcode)都依赖于Apple特定的扩展。例如,最后我检查了Apple是否有自己的链接器。

此外,Linux不强制执行二进制兼容性-通常,人们从源代码构建软件,或为每个操作系统版本下载特定的二进制文件。作为最终用户(相对于开发人员/专业用户)的操作系统,macOS竭尽全力维护与在较早版本的macOS上构建的二进制文件的兼容性。

替换编译器,或更糟糕的是,替换系统库将破坏这些兼容性保证。它还可能以微妙的,非显而易见的方式破坏系统。

但是可以在/usr/local左右随意安装第二个clang副本,并探索新功能,但不要理会系统编译器。

还请注意,Apple不支持将软件提交到不是使用Xcode及其包含的编译器构建的应用程序商店。虽然这样做可能会引起注意,但如果编译器无法执行Apple编译器所做的任何事情,您可能会在应用商店审查中被拒绝。

答案 4 :(得分:1)

在Mountain Lion 10.8.2上使用XCode 4.6,版本为:

$ 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.

您也可以从App Store或Apple Developer Account直接下载更新Lion的XCode,并安装命令行工具,这将更新clang& llvm到以上版本。

答案 5 :(得分:1)

OS X更新版本10.9.2将XCode带到版本5.1(5B130a),然后进入最新版本(OS X):

$ clang --version
Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix

在我的Mac上llvm-gcc和llvm-g ++是这个clang的符号链接:

lrwxr-xr-x  1 root  wheel     5B 25 Oct 16:48 /usr/bin/llvm-gcc -> clang
lrwxr-xr-x  1 root  wheel     7B 25 Oct 16:48 /usr/bin/llvm-g++ -> clang++

我最新的R安装配置为使用llvm-gcc-4.2,这会在构建SHLIB时导致错误。对于llvm-gcc-4.2和llvm-g ++ - 4.2的创建符号链接,以相同的方式,而不是替换LLVM或CLANG ,足以解决错误。