Как обновить LLVM & Clang на Mac OSX?
В моей версии Mac OSX (Lion 10.7.1, 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?
Знаете ли вы о возможных проблемах установка Clang вручную?
После установки будет ли новый Clang использоваться автоматически всеми IDE файлами, которые у меня есть (например, NetBeans)?
Ответы
Ответ 1
Поставщики программного обеспечения традиционно консервативны в обновлении инструментов сборки и не без оснований. Если вы хотите использовать новейшие общедоступные версии инструментов сборки, поставляемые и модифицированные Apple, вы должны придерживаться тех, которые содержатся в последней версии Xcode для выпуска операционной системы OS X. Как правило, есть веские причины, по которым Apple еще не обновилась до новейших версий компонентов с открытым исходным кодом, таких как серьезные ошибки. Если вам не нужны модификации, поставляемые Apple, и имейте в виду не жить на грани, то есть не поддерживать Apple и, возможно, (повторно) обнаруживать известные проблемы, и не планируете отправлять скомпилированные файлы в другие системы людей, вы может установить ваши собственные версии, например, /usr/local/bin
или с помощью сторонних менеджеров пакетов, таких как MacPorts http://www.macports.org/ports.php?by=name&substr=clang). Вы не должны пытаться заменить файлы на пути, установленные Xcode. Стоит ли оно того? Только вы можете это решить.
Ответ 2
Сайт неверен. 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. 5658) (LLVM build 2336.1.00)
Ответ 3
Вы можете с комфортом создать свой собственный LLVM, используя homebrew:
brew install llvm
Существуют также версии пакетов, если вам нужна определенная версия:
Ответ 4
В 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.
Вы также можете обновить XCode для Lion из магазина App Store или Apple Developer напрямую, а также установить инструменты командной строки, которые будут обновлять clang и llvm до версий.
Ответ 5
OS X Обновление версии 10.9.2 приводит XCode к версии 5.1 (5B130a) и clang к последней стабильной (для 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, достаточно для устранения ошибок.