J'ai essayé
brew install llvm
mais après cela, je ne trouve aucun clang++*
exécutable sous /usr/local
.
D'où ma question: comment obtenir clang ++ via Homebrew?
la source
J'ai essayé
brew install llvm
mais après cela, je ne trouve aucun clang++*
exécutable sous /usr/local
.
D'où ma question: comment obtenir clang ++ via Homebrew?
Depuis 2018, le référentiel des versions Homebrew ('tap') est hors service .
Le package stock Homebrew llvm n'inclut toujours pas clang / clang ++, par défaut. Ainsi, il ne fait pas partie du package prédéfini («en bouteille»).
On peut le construire via:
brew install --with-toolchain llvm
Et puis utilisez-le par exemple:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Mais cette --with-toolchain
construction induite prend beaucoup de temps et n'est donc pas adaptée dans un environnement d'intégration continue (CI).
Cependant, le bruit qui vient avec le XCode récent (qui est disponible dans les environnements CI comme Travis-CI, la version 9 est la valeur par défaut, 10 également disponible) n'est plus aussi obsolète qu'auparavant (Apple utilise un schéma de version fantastique pour clang qui ne correspond pas aux numéros de version de clang en amont mais cmake détecte par exemple pour AppleClang 9.1.0.9020039 la version 4.0.1). Ainsi, il suffit de construire un logiciel C ++ 11 / C ++ 14 avec des dépendances communes comme Boost (par exemple la version 1.67).
Le llvm
package dans Homebrew ne comprend pas clang++
, par défaut. Lors de son installation, vous devez ajouter --with-clang
à la ligne de commande (par exemple brew install --with-clang llvm
). L'extra --with-clang
donne une compilation complète du package car il n'y a qu'un seul package de pré-construction («en bouteille») llvm
disponible (sans clang++
). En plus de cela: le llvm
package est relativement ancien - il a actuellement llvm 3.6 - où 3.7 est sorti il y a 6 mois.
Ainsi, pour obtenir une version clang++
3.7 en bouteille, vous devez installer le package llvm à partir des versions Homebrew :
$ brew tap homebrew/versions
$ brew install llvm37
Il est ensuite disponible sous:
/usr/local/bin/clang++-3.7
La formule note également:
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) dans lehomebrew-core
robinet comprend maintenantclang
,clang++
etc. sous/usr/local/opt/llvm/bin
--with-toolchain
maintenant un argument dont certains utilisateurs pourraient avoir besoin. Plus d'informations ici, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx--with-clang
argument a été supprimé.brew install --with-toolchain llvm
comme @hangtwenty suggère ou estbrew install llvm
suffisant? Avec l'--with-toolchain
option, le package est compilé - ce qui prend beaucoup de temps - par rapport à l'installation d'un package prédéfini (en bouteille / binaire).Vous devez l'installer avec l'
--with-clang
option:Ensuite, vous trouverez
clang++
sur / usr / local / opt / llvm / bin / clang ++ .la source
--with-clang
? Je demande parce que j'ai l'intention d'appeler cela dans un environnement d'intégration continue ...Les options --with-clang et --with-toolchain ne fonctionnent plus. Cela a fonctionné pour moi:
J'ai compilé avec
la source
/usr/local/include
dossier comme répertoire d' inclusion de base, donc toute construction logicielle échoue. Clang fourni par xcode n'a pasfsanitize=leak
etccc-analyzer
. Donc, les deux coups sur mac os sont brisés. Vous devez le construire avec toutes les fonctionnalités activées à partir de la source. Mais la compilation tuera votre CI comme travis. Vous devez donc héberger et maintenir un CI séparé uniquement pour Apple. Apple n'est bon que pour un développement simple, tout le reste nécessite de la peine.Maintenant, il suffit de courir:
La bouteille comprend désormais
clang
par défaut.la source