Aggiorna GCC su OSX
-
10-07-2019 - |
Domanda
Quindi sono un nuovo programmatore e ho appena installato XCode sul mio Macbook per ottenere il GCC. Penso che Xcode sia l'unico modo per ottenere GCC su OSX. Ora, quando eseguo la mia applicazione Hello World, in C ++, g ++ viene fuori dicendo che è la versione 4.0.1 ma quando cerco comandi che iniziano con g vedo anche g ++ - 4.2. Esiste un modo per rendere 4.2 predefinito anziché 4.0.1, e c'è anche un modo per aggiornare gcc all'ultima versione 4.4.0?
EDIT: Ok, quindi ho installato macports e installato gcc4.4 e si presenta sul terminale come gcc-mp-4.4 e come faccio a renderlo predefinito con gcc_select, come quali sono i comandi e roba. Grazie.
Soluzione
Se installi macports puoi installare gcc select, quindi scegliere la tua versione di gcc.
/opt/local/bin/port install gcc_select
Per vedere le tue versioni usa
port select --list gcc
Per selezionare una versione utilizzare
sudo port select --set gcc gcc40
Altri suggerimenti
So che è una vecchia richiesta. Ma potrebbe essere ancora utile per alcuni. Con le versioni correnti di MacPorts, puoi scegliere la versione predefinita di gcc usando il comando port. Per elencare le versioni disponibili di gcc, usare:
$ sudo port select --list gcc
Available versions for gcc: gcc42 llvm-gcc42 mp-gcc46 none (active)
Per impostare gcc sulla versione di MacPorts:
$ sudo port select --set gcc mp-gcc46
Sto solo dicendo che usare un soft link per realizzare questo è un'idea terribile, non buona, orribile.
Una delle cose chiave della scrittura del software è la riproducibilità: vuoi essere in grado di ottenere gli stessi risultati ogni volta. Questi sistemi sono così complessi che si desidera ridurre tutte le fonti invisibili di errore.
Avere un soft link è una fonte invisibile di errore. È il genere di cose che dimenticherai in un mese, quindi passa a una macchina diversa e ti chiedi perché stai ottenendo risultati diversi - o, proverai ad aggiornare il tuo sistema e otterrai strani errori perché non è in attesa di un softlink lì.
Inoltre, questo non è garantito per funzionare - in particolare, non è chiaro che otterrai i file di inclusione del sistema corretti, che sono certamente cambiati tra le iterazioni di gcc.
gcc_select è un modo sistematico di fare la stessa cosa che funzionerà in modo prevedibile, o nel caso peggiore è possibile presentare una segnalazione di bug e ottenere un'eventuale correzione o risolverlo da soli.
Sfortunatamente :-( gcc_select non influenza quale compilatore XCode utilizza, quindi non è la strada da percorrere se devi lavorare in XCode (cosa che faccio). Non so ancora quale potrebbe essere in questo modo.
usa " gcc_select -l "
> gcc_select -l
gcc40 mp-gcc44
> gcc_select mp-gcc44
in / usr / bin
digitare
sudo ln -s -f g ++ - 4.2 g ++
sudo ln -s -f gcc-4.2 gcc
Dovrebbe farlo.
Puoi avere più versioni di GCC nella tua casella, per selezionare quella che desideri utilizzare chiamala con il percorso completo, ad es. invece di g ++
usa il percorso completo / usr / bin / g ++
sulla riga di comando (dipende da dove risiede il tuo gcc).
Per i progetti di compilazione dipende dal sistema che usi, non sono sicuro di Xcode (sono contento del default atm) ma quando usi Makefile puoi impostare GXX = / usr / bin / g ++ e così via.
Modifica
Ora c'è uno script xcrun
su cui è possibile eseguire una query per selezionare la versione appropriata degli strumenti di compilazione su Mac. A parte man xcrun
ho cercato su Google questa spiegazione su xcode e strumenti da riga di comando che riassume praticamente come usarlo.
Qualunque sia la Apple fornita come gcc predefinita in xcode (4.2.1 su 10.6, 4.0.1 prima) è ben testata (e mantenuta) dai ragazzi di Apple e dallo "standard" per creare software con su OS X. Tutto il resto no, quindi pensaci due volte se vuoi sviluppare software o essere beta tester gcc / OS X.