Come installare il clang recente ++ con Homebrew?

20

Ho provato

brew install llvm

ma dopo non riesco a trovare nessun clang++* eseguibile sotto /usr/local .

Quindi la mia domanda: come ottenere clang ++ via Homebrew?

    
posta maxschlepzig 11.02.2016 - 08:58
fonte

2 risposte

17

A partire dal 2018, il repository Homebrew Versions ('tap') è fuori servizio .

Il pacchetto Homebrew llvm di riserva non include ancora clang / clang ++, per impostazione predefinita. Quindi, non fa parte del pacchetto precompilato ('bottled').

Si può creare tramite:

brew install --with-toolchain llvm

E quindi utilizzalo per esempio:

$ PATH="/usr/local/opt/llvm/bin:$PATH" \
    LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
    cmake ...

Questa build indotta da --with-toolchain richiede molto tempo e quindi non è adatta in un ambiente di integrazione continua (CI).

Tuttavia, il clang che viene fornito con il recente XCode (che è disponibile in ambienti CI come Travis-CI, Versione 9 è il predefinito, 10 disponibili, anche) non è più obsoleto come in passato (Apple usa un schema di versione fantasy per clang che non corrisponde ai numeri di versione clang upstream ma cmake rileva ad es. per AppleClang 9.1.0.9020039 la versione 4.0.1). Pertanto, è sufficiente creare software C ++ 11 / C ++ 14 con dipendenze comuni come Boost (ad esempio versione 1.67).

2016 State of the Art

Il pacchetto llvm in Homebrew non include clang++ , per impostazione predefinita. Quando lo si installa, è necessario aggiungere --with-clang alla riga di comando (ad esempio brew install --with-clang llvm ). L'extra --with-clang fornisce una compilazione completa del pacchetto perché è disponibile un solo pacchetto pre-build ('in bottiglia') llvm (senza clang++ ). In aggiunta a ciò: il pacchetto llvm è relativamente vecchio - attualmente ha llvm 3.6 - dove 3.7 è stato rilasciato 6 mesi fa.

Quindi, per ottenere una percentuale in bottiglia diclang++ 3.7 devi installare il pacchetto llvm da versioni Homebrew :

$ brew tap homebrew/versions
$ brew install llvm37

È quindi disponibile sotto:

/usr/local/bin/clang++-3.7

La formula rileva anche:

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"
    
risposta data 13.02.2016 - 10:47
fonte
3

Devi installarlo con l'opzione --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
                                    
risposta data 11.02.2016 - 14:32
fonte

Leggi altre domande sui tag