ich habe es versucht
brew install llvm
aber danach kann ich keine clang++*ausführbare Datei unter finden /usr/local.
Also meine Frage: Wie bekomme ich Clang ++ über Homebrew?
ich habe es versucht
brew install llvm
aber danach kann ich keine clang++*ausführbare Datei unter finden /usr/local.
Also meine Frage: Wie bekomme ich Clang ++ über Homebrew?
Antworten:
Ab 2018 ist das Homebrew Versions-Repository ('tap') außer Betrieb .
Das Standardpaket von Homebrew llvm enthält standardmäßig noch kein clang / clang ++. Daher ist es nicht Teil des vorgefertigten Pakets ("abgefüllt").
Man kann es bauen über:
brew install --with-toolchain llvm
Und dann benutze es zB über:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Dieser --with-toolchaininduzierte Build dauert jedoch sehr lange und ist daher in einer Umgebung mit kontinuierlicher Integration (Continuous Integration, CI) ungeeignet.
Der Clang, der mit dem aktuellen XCode (der in CI-Umgebungen wie Travis-CI, Version 9, verfügbar ist, und auch in Version 10) geliefert wird, ist jedoch nicht mehr so veraltet wie früher (Apple verwendet ein Fantasy-Versionsschema) für clang, das nicht mit den Versionsnummern des Upstream-Clangs übereinstimmt, aber cmake erkennt z. B. für AppleClang 9.1.0.9020039 die Version 4.0.1). Es reicht also aus, C ++ 11 / C ++ 14-Software mit gängigen Abhängigkeiten wie Boost (z. B. Version 1.67) zu erstellen.
Das llvmPaket in Homebrew enthält clang++standardmäßig nicht. Bei der Installation müssen Sie --with-clangder Kommandozeile hinzufügen (zB brew install --with-clang llvm). Das Extra --with-clangergibt eine vollständige Paketkompilierung, da nur ein vorgefertigtes ('abgefülltes') llvmPaket verfügbar ist (ohne clang++). Hinzu kommt, dass das llvmPaket relativ alt ist - derzeit hat es llvm 3.6 -, wo 3.7 vor 6 Monaten veröffentlicht wurde.
Um einen abgefüllten clang++3.7 zu erhalten, müssen Sie das llvm-Paket von Homebrew-Versionen installieren :
$ brew tap homebrew/versions
$ brew install llvm37
Es ist dann verfügbar unter:
/usr/local/bin/clang++-3.7
In der Formel wird außerdem Folgendes angegeben:
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) in dem homebrew-coreWasserhahn enthält jetzt clang, clang++usw. unter/usr/local/opt/llvm/bin
--with-toolchainEinige Benutzer benötigen möglicherweise ein Argument. Weitere Informationen hier, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx
--with-clangArgument entfernt.
brew install --with-toolchain llvmwie @hangtwenty vorschlägt oder brew install llvmausreicht? Mit der --with-toolchainOption wird das Paket kompiliert - was im Vergleich zur Installation eines vorgefertigten (abgefüllten / binären) Pakets sehr zeitaufwendig ist.
Sie müssen es mit der --with-clangOption installieren :
$ 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
Dann finden Sie clang++auf / usr / local / opt / llvm / bin / Klirren ++ .
--with-clang? Ich
Die Optionen --with-clang und --with-toolchain funktionieren nicht mehr. Das hat bei mir funktioniert:
brew install llvm
cd /Library/Developer/CommandLineTools/Packages/
open .
run the installer
Ich habe mit kompiliert
CC=/usr/local/cellar/llvm/7.0.1/bin/clang CCX=/usr/local/cellar/llvm/7.0.1/bin/clang++ make
/usr/local/includeOrdner als Basis-Include-Verzeichnis, sodass alle Software-Builds fehlschlagen. Clang zur Verfügung gestellt von Xcode nicht haben fsanitize=leakund ccc-analyzer. Also sind beide Klänge auf dem Mac OS kaputt. Sie müssen es mit allen Funktionen aus dem Quellcode erstellen. Aber die Zusammenstellung wird Ihr CI wie Travis töten. Sie müssen also separate CIs nur für Apple hosten und verwalten. Apple ist nur für die einfache Entwicklung gut, alles andere erfordert Schmerzen.
Jetzt reicht es zu rennen:
brew install llvm
Die Flasche enthält jetzt clangstandardmäßig.