Questo mi ha tormentato per un po ‘ora. Sto cercando di compilare un enorme file C ++ (so che funziona come funziona bene sul mio computer Arch Linux al lavoro). Quando ho controllato la mia versione di GCC sul mio Mac, restituisce quanto segue
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) Target: x86_64-apple-darwin14.1.0 Thread model: posix
Ho anche installato la versione GCC più recente utilizzando Homebrew con
brew install gcc49
La mia domanda ora è come applicare la versione di GCC appena installata come versione predefinita utilizzata dal terminale?
Sono anche consapevole del fatto che quando si usa homebrew per isntall gcc lo chiama gcc-49 in modo che non ci sia confusione tra i pacchetti.
Non ho idea di come sostituire la versione 4.2.1 fornita con XCode con la versione 4.9 che ho installato.
Grazie
Modifica: Passa al mio mac per ottenere la dichiarazione completa di ritorno di gcc –version
Modifica 2: Il mio gioco finale qui è quello di essere in grado di navigare nella directory ed essere in grado di digitare
make sudo make install
per installare il demone che è stato fatto. In questo momento restituisce tonnellate di errori con pacchetti casuali e la libreria standard
Per impostazione predefinita, homebrew
posiziona gli eseguibili (binari) per i pacchetti che installa in /usr/local/bin
– che è un posto abbastanza ragionevole per i binari installati dagli utenti locali quando ci si pensa – rispetto a /bin
che ospita i binari standardisded che appartengono al sistema operativo principale. Quindi, il tuo comando brew
dovrebbe aver installato gcc-4.9
in /usr/local/bin
. La domanda ora è come usarla … hai diverse opzioni.
opzione 1
Se vuoi semplicemente compilare una o due cose oggi e domani, e quindi probabilmente non usare di nuovo il compilatore, puoi anche invocare il gcc
installato da homebrew
con il percorso completo come questo:
/usr/local/bin/gcc-4.9 --version
opzione 2
Se stai usando gcc
parecchio, diventa sempre un po ‘noioso digitando esplicitamente il percorso completo ogni volta, quindi puoi inserire quanto segue nel tuo ~/.bash_profile
export PATH=/usr/local/bin:$PATH
e quindi avviare un nuovo terminale e saprà che ha bisogno di cercare in /usr/local/bin
, così sarete in grado di farla franca semplicemente digitando
gcc-4.9 --version
Opzione 3
Se vuoi solo usare gcc
per invocare il compilatore, senza preoccuparti della versione attuale, puoi fare l’Opzione 2 sopra e creare anche un collegamento simbolico come questo
cd /usr/local/bin ln -s gcc-4.9 gcc
Ciò ti consentirà di eseguire il gcc
installato in homebrew
semplicemente digitando gcc
alla riga di comando, in questo modo
gcc --version
Nota:
Se in un secondo momento si desidera installare, ad esempio gcc-4.13
o somesuch, si dovrebbe eseguire l’ brew install
come prima, quindi modificare il collegamento simbolico in questo modo:
cd /usr/local/bin rm gcc # remove old link from gcc to gcc-4.9 ln -s gcc-4.13 gcc # make new link from gcc to gcc-4.13
semplicemente aggiornando l’ordine di $ PATH in ~ / .bash_profile nella versione di brew installata 'export PATH=/usr/local/Cellar/gcc/5.1.0/bin:$PATH'
non era abbastanza per fare l’interruttore per me
cambiando l’alias nel tuo ~. / bash_profile ( alias gcc='gcc-5'
) funziona, ma puoi confondere ie which gcc
restituirà la versione Clang
ciò che ha funzionato per me è stato creare un collegamento simbolico nella directory brew gcc e aggiornare il percorso (punto 1 sopra)
cd /usr/local/Cellar/gcc/5.1.0/bin/gcc ln -s gcc-5 gcc
ora which gcc
restituisce la versione corretta 5.1.0
OS X non viene installato con GCC (4.2.1 o altro). Clang è il compilatore di sistema predefinito ed è stato per qualche tempo. Sta usando le intestazioni C ++ dalla 4.2.1 quando invocato come GCC. Hai provato a compilare il tuo codice con Clang in modo nativo, invece di chiamare “gcc” (che chiama Clang)? Ha più moderne intestazioni e supporto C ++ rispetto alla modalità di emulazione GCC.
Scarica i file binari di gcc untar e copia il cestino, lib include i file share e libexec nella directory / usr, quindi digita gcc –version questo è quello che mi aspetto che tu veda
gcc –version gcc (GCC) 4.9.2 20141029 (prerelease) Copyright (C) 2014 Free Software Foundation, Inc. Questo è software libero; vedere la fonte per le condizioni di copia. Non c’è garanzia; nemmeno per COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO.