Я намагався
brew install llvm
але після цього я не можу знайти жодного clang++*
виконуваного файлу під /usr/local
.
Таким чином, моє запитання: Як отримати clang ++ через Homebrew?
Я намагався
brew install llvm
але після цього я не можу знайти жодного clang++*
виконуваного файлу під /usr/local
.
Таким чином, моє запитання: Як отримати clang ++ через Homebrew?
Відповіді:
Станом на 2018 рік сховище Homebrew Versions ("кран") не працює .
Пакет llvm акцій Homebrew як і раніше не включає clang / clang ++ за замовчуванням. Таким чином, він не є частиною попередньо вбудованого пакету.
Можна побудувати його за допомогою:
brew install --with-toolchain llvm
А потім скористайтеся ним, наприклад:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Але ця --with-toolchain
індукована збірка займає дуже багато часу і, таким чином, непридатна в середовищі постійної інтеграції (CI).
Однак клакс, що поставляється з останнім XCode (який доступний у середовищах CI, таких як Travis-CI, версія 9 за замовчуванням, 10 доступна теж), вже не застаріла, як раніше (Apple використовує схему версій фантазії для клангу, який не відповідає номерам версій за версією, але cmake виявляє, наприклад, для AppleClang 9.1.0.9020039 версія 4.0.1). Таким чином, достатньо створити програмне забезпечення C ++ 11 / C ++ 14 із загальними залежностями, такими як Boost (наприклад, версія 1.67).
llvm
Пакет в Homebrew не включає в себе clang++
, за замовчуванням. Встановлюючи його, ви повинні додати --with-clang
до командного рядка (наприклад brew install --with-clang llvm
). Додатковий результат --with-clang
дає повну компіляцію пакетів, оскільки доступний лише один попередній збірний llvm
пакет (без нього clang++
). На додаток до цього: llvm
пакет відносно старий - зараз він має llvm 3,6 - де 3,7 випущено 6 місяців тому.
Таким чином, для отримання розливного clang++
3,7 вам потрібно встановити пакет llvm від Homebrew Versions :
$ brew tap homebrew/versions
$ brew install llvm37
Потім він доступний під:
/usr/local/bin/clang++-3.7
Формула також зазначає:
To link to libc++, something like the following is required:
CXX="clang++-3.7 -stdlib=libc++"
CXXFLAGS="$CXXFLAGS -nostdinc++ -I/usr/local/opt/llvm37/lib/llvm-3.7/include/c++/v1"
LDFLAGS="$LDFLAGS -L/usr/local/opt/llvm37/lib/llvm-3.7/lib"
llvm
(3.9.1) в homebrew-core
крані тепер включає в себе clang
, clang++
і т.д. під/usr/local/opt/llvm/bin
--with-toolchain
аргумент, який може знадобитися деяким користувачам. Більше інформації тут, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx
--with-clang
аргумент було видалено.
brew install --with-toolchain llvm
як @hangtwenty пропонує чи brew install llvm
достатньо? За допомогою цього --with-toolchain
варіанту пакет складається - що забирає багато часу - порівняно з просто встановленням попередньо вбудованого (розливного / двійкового) пакету.
Ви повинні встановити його з --with-clang
опцією:
$ brew install --with-clang llvm
==> Installing dependencies for llvm: cmake
==> Installing llvm dependency: cmake
==> Downloading https://homebrew.bintray.com/bottles/cmake-3.4.3.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring cmake-3.4.3.el_capitan.bottle.tar.gz
==> Caveats
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/cmake
==> Summary
🍺 /usr/local/Cellar/cmake/3.4.3: 1,980 files, 27.4M
==> Installing llvm
==> Downloading http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
######################################################################## 100.0%
==> Downloading http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
######################################################################## 100.0%
==> cmake -G Unix Makefiles /private/tmp/llvm20160211-42310-16fdrbw/llvm-3.6.2.src -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEAS
==> make
==> make install
==> Caveats
LLVM executables are installed in /usr/local/opt/llvm/bin.
Extra tools are installed in /usr/local/opt/llvm/share/llvm.
This formula is keg-only, which means it was not symlinked into /usr/local.
OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/llvm/lib
CPPFLAGS: -I/usr/local/opt/llvm/include
If you need Python to find bindings for this keg-only formula, run:
echo /usr/local/opt/llvm/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/llvm.pth
==> Summary
🍺 /usr/local/Cellar/llvm/3.6.2: 1,350 files, 338.2M, built in 21 minutes 18 seconds
Потім ви знайдете clang++
на / usr / local / opt / llvm / bin / clang ++ .
--with-clang
? Я прошу, тому що я маю намір викликати це в середовищі безперервної інтеграції ...
Параметри --with-clang та --with-toolchain більше не працюють. Це працювало для мене:
brew install llvm
cd /Library/Developer/CommandLineTools/Packages/
open .
run the installer
Я склав с
CC=/usr/local/cellar/llvm/7.0.1/bin/clang CCX=/usr/local/cellar/llvm/7.0.1/bin/clang++ make
/usr/local/include
папку, як база включає в себе dir, тому вся збірка програмного забезпечення виходить з ладу. Кланг, наданий xcode, не має fsanitize=leak
та ccc-analyzer
. Таким чином, обидва клакси на mac os зламані. Ви повинні побудувати його з усіма функціями, включеними з джерела. Але компіляція вб'є ваш КІ, як травіс. Тож вам доведеться розміщувати та підтримувати окремий ІС лише для яблук. Яблуко добре лише для простого розвитку, все інше вимагає болю.
Тепер достатньо запустити:
brew install llvm
Пляшка тепер включає clang
за замовчуванням.