2011-12-29 21 views
15

Sulla mia versione di Mac OSX (Lion 10.7.1, XCode 4.1), c'è LLVM 3.0svn e Clang 2.1. I modelli current versions sono LLVM 3.0 e Clang 3.0.Come aggiornare LLVM e Clang su Mac OSX?

Da XCode web site, sembra che l'ultima versione (4.2.1) usi ancora LLVM 2.0 e questo sembra essere un errore.

Sapete se installando l'ultimo XCode otterrò una versione più recente di LLVM/Clang?

Sei a conoscenza di eventuali problemi installing Clang manually?

Una volta installato, il nuovo Clang sarà utilizzato automaticamente da tutti gli IDE che ho (ad esempio NetBeans)?

+2

notare inoltre che Apple utilizza il proprio controllo delle versioni per llvm/clang. Quindi, Apple LLVM 3.0/clang 3.0 sono diversi da LLVM 3.0 di llvm.org :) Questi ultimi sono più recenti. Aggiornamento –

risposta

8

I fornitori di software sono tradizionalmente prudenti sull'aggiornamento degli strumenti di creazione e con una buona ragione. Se si desidera utilizzare le ultime versioni supportate pubblicamente degli strumenti di sviluppo forniti e modificati da Apple, è necessario attenersi a quelli dell'ultima versione di Xcode per la versione OS X in esecuzione. Di solito ci sono buone ragioni per cui Apple non ha ancora aggiornato le ultime versioni dei componenti open source, come i bug gravi. Se non hai bisogno delle modifiche fornite da Apple e non ti preoccupare di vivere ai margini - ovvero non supportare Apple e forse (ri) scoprire problemi noti - e non hai intenzione di spedire i file compilati ai sistemi di altre persone, potrebbe installare le proprie versioni in, diciamo, /usr/local/bin o utilizzando gestori di pacchetti di terze parti, come MacPorts http://www.macports.org/ports.php?by=name&substr=clang). Si dovrebbe sicuramente non provare a sostituire i file nei percorsi installati da Xcode. Ne vale la pena? Solo tu puoi decidere quello.

+0

: L'attuale Xcode 4.3.3 per OS X 10.7 ha una versione più recente di 'clang':' Apple clang versione 3.1 (tag/Apple/clang-318.0.61) (basato su LLVM 3.1svn) '. –

+2

La numerazione delle versioni di Apple non corrisponde a quella di clang. Apple clang 3.1 è basato sul codice sorgente prima di clang 3.1 è diventato definitivo. Mancano alcune funzionalità di C++ 11 come gli elenchi di inizializzatori. Hanno anche battuto la versione a 4.0 in 4.4DP ma è ancora clang 3.1 livello di funzionalità. –

+0

Questo è FUD, le versioni stabili di clang sono abbastanza stabili e altri sistemi operativi come FreeBSD tracciano l'ultima versione – jupp0r

8

Il sito Web non è corretto. Xcode 4.2.1 e 4.2 includono LLVM 3.0 e 3.0 clang:

clang --version
di Apple la versione 3.0 clang (tag/Apple/clang-211,12) (sulla base di LLVM 3.0svn)

clang ++ --version
di apple la versione 3.0 clang (tag/apple/clang-211,12) (sulla base di LLVM 3.0svn)

LLVM-g ++ --version
i686-apple-darwin11-LLVM-g ++ - 4.2 (GCC) 4.2.1 (Basato su Apple Inc. build 5658) (LLVM build 2336.1.00)

.210

LLVM-GCC --version
i686-apple-darwin11-LLVM-GCC-4.2 (GCC) 4.2.1 (Basato su Apple Inc. costruire 5658) (LLVM costruire 2336.1.00)

+0

Sono su Xcode 4.4.1 e continuo a vedere: 'Apple clang versione 2.1 (tag/Apple/clang-163.7.1) (basato su LLVM 3.0svn) Destinazione: x86_64-apple-darwin11.4.0 Modello di thread : posix' –

+0

Sono sulla stessa versione di Xcode ma clang --version reports: Apple clang versione 4.0 (tag/Apple/clang-421.0.60) (basato su LLVM 3.1svn) Target: x86_64-apple-darwin12. 1.0 Modello di filo: posix. Forse hai ancora una versione precedente di Xcode installata insieme alla 4.4.1? Controlla anche la scheda Download nelle preferenze di Xcode per verificare se il componente Strumenti riga di comando è stato installato. –

+0

@JamesMcKinney Potrebbe essere necessario eseguire xcode-select sulla riga di comando per indirizzare il sistema alla versione di clang installata con la versione di Xcode installata. – leecbaker

2

su Mountain Lion 10.8.2 con XCode 4.6, le versioni sono:

$ clang --version 
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) 
Target: x86_64-apple-darwin12.2.0 
Thread model: posix 

$ clang++ --version 
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) 
Target: x86_64-apple-darwin12.2.0 
Thread model: posix 

$ llvm-g++ --version 
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 
Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

$ llvm-gcc --version 
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 
Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

È possibile aggiornare XCode per il Leone anche da App Store o Apple Developer account download diretto, e installare gli strumenti della riga di comando, che aggiorneranno clang & llvm alle versioni precedenti.

+0

Come previsto, dopo il rilascio di OSX 10.8.3 Xcode 4.6.1 che contiene clang-425.0.27 –

1

OS X Aggiornamento versione 10.9.2 porta XCode alla versione 5.1 (5B130a), e clang alla ultima versione stabile (per OS X):

$ clang --version 
Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin13.1.0 
Thread model: posix 

Sul mio Mac LLVM-GCC e LLVM-g ++ sono link simbolici a questo clang:

lrwxr-xr-x 1 root wheel  5B 25 Oct 16:48 /usr/bin/llvm-gcc -> clang 
lrwxr-xr-x 1 root wheel  7B 25 Oct 16:48 /usr/bin/llvm-g++ -> clang++ 

Il mio ultimo R l'installazione è configurata per utilizzare llvm-gcc-4.2 che causerebbe errori durante la creazione di SHLIB. Creazione di symlink per llvm-gcc-4.2 e llvm-g ++ - 4.2 allo stesso modo, invece di sostituire LLVM o CLANG, è sufficiente per risolvere gli errori.

6

Si può comodamente costruire il proprio LLVM utilizzando homebrew:

pacchetti
brew install llvm 

Ci sono anche con versione in caso di necessità una versione specifica:

+0

, questo non funziona più poiché il rubinetto è vuoto. '$ brew tap homebrew/versions' restituisce" Attenzione: homebrew/versions è stato deprecato.Questo rubinetto è vuoto quando sono state migrate tutte le sue formule. " C'è un modo per farlo ora? –

+1

Sì, funziona ancora, ho aggiornato la risposta. – jupp0r