Я намагався
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за замовчуванням.