在我的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吗?
答案 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)
答案 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 ,足以解决错误。