He intentado
brew install llvm
pero después de eso no puedo encontrar ninguna clang++*
bajo ejecutable /usr/local
.
Por lo tanto mi pregunta: ¿Cómo obtener sonido metálico ++ a través de Homebrew?
He intentado
brew install llvm
pero después de eso no puedo encontrar ninguna clang++*
bajo ejecutable /usr/local
.
Por lo tanto mi pregunta: ¿Cómo obtener sonido metálico ++ a través de Homebrew?
Respuestas:
A partir de 2018, las versiones Homebrew repositorio ( 'grifo') está fuera de servicio .
El paquete de la llvm Homebrew todavía no incluye sonido metálico / ruido metálico ++, por defecto. Por lo tanto, no es parte de la pre-compilados ( 'botella') paquete.
Se puede construir a través de:
brew install --with-toolchain llvm
Y luego úsalo por ejemplo:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Pero esta --with-toolchain
acumulación inducida lleva mucho tiempo y es por tanto inadecuada en un entorno de integración continua (CI).
Sin embargo, el sonido metálico que viene con XCode reciente (que está disponible en entornos CI como Travis-CI, la Versión 9 es la predeterminada, 10 disponible también) ya no está tan desactualizado como solía estarlo (Apple usa un esquema de versión de fantasía para el ruido metálico que no coincide con los números de versión clang aguas arriba pero cmake detecta por ejemplo, para AppleClang 9.1.0.9020039 la versión 4.0.1). Por lo tanto, es suficiente para construir software C ++ 11 / C ++ 14 con dependencias comunes como Boost (por ejemplo la versión 1.67).
El llvm
paquete en Homebrew no incluye clang++
, por defecto. Al instalarlo, debe agregarlo --with-clang
a la línea de comando (por ejemplo brew install --with-clang llvm
). El extra de --with-clang
los rendimientos de una compilación paquete completo, porque sólo hay una prebuild ( 'botella') llvm
paquete disponible (sin clang++
). Además de eso: el llvm
paquete es relativamente antigua - Actualmente tiene llvm 3.6 - 3.7, donde fue lanzado hace 6 meses.
Por lo tanto, para conseguir una botella clang++
de 3,7 tiene que instalar el paquete llvm de versiones Homebrew :
$ brew tap homebrew/versions
$ brew install llvm37
Luego está disponible en:
/usr/local/bin/clang++-3.7
La fórmula también señala:
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) en el homebrew-core
grifo ahora incluye clang
, clang++
, etc., bajo/usr/local/opt/llvm/bin
--with-toolchain
argumento ahora que algunos usuarios podrían necesitar. Más información aquí, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx
--with-clang
argumento ha sido eliminado.
brew install --with-toolchain llvm
como @hangtwenty sugiere o es brew install llvm
suficiente? Con la --with-toolchain
opción del paquete se compila - que es mucho tiempo - en comparación con sólo la instalación de un paquete precompilado (embotellada / binario).
Tienes que instalarlo con --with-clang
opción:
$ 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
Luego, encontrará clang++
en / usr / local / opt / llvm / bin / clang ++ .
--with-clang
? Me pregunto porque tengo la intención de llamar a que en un entorno de integración continua ...
El --con-ruido metálico y opciones --with-cadena de herramientas ya no funcionan. Esto funcionó para mí:
brew install llvm
cd /Library/Developer/CommandLineTools/Packages/
open .
run the installer
Compilé con
CC=/usr/local/cellar/llvm/7.0.1/bin/clang CCX=/usr/local/cellar/llvm/7.0.1/bin/clang++ make
/usr/local/include
carpeta como base incluye el directorio, por lo que falla la construcción de todo el software. Clang proporcionado por xcode no tiene fsanitize=leak
y ccc-analyzer
. Así que ambos clangs en mac os están rotos. Tienes que construirlo con todas las funciones habilitadas desde la fuente. Pero la compilación matará tu CI como travis. Por lo tanto, debe hospedar y mantener un CI separado solo para apple. Apple es bueno solo para un desarrollo simple, cualquier otra cosa requiere dolor.
Ahora es suficiente para ejecutar:
brew install llvm
La botella ahora incluye clang
por defecto.