2011-12-02 11 views
39

Ho installato gcc 4.6. da macports (per supporto di C++ 0x). Ma quando controllo 'gcc --version` mostra la versione precedente. Come usare il nuovo gcc installato da macports?Come utilizzare il gcc installato in macports?

+0

possibile duplicato di [Aggiornamento GCC su OSX] (http://stackoverflow.com/questions/837992/update-gcc-on-osx) – birryree

+0

Vedere anche [Uso del compilatore destro] (https: //trac.macports .org/wiki/UsingTheRightCompiler) sul wiki MacPorts. – jww

risposta

7

mi ricordo che sia qualcosa di simile g++-mp-4.6. Credo sia sufficiente impostare la variabile di ambiente CXX a tale scopo.

+2

che ha funzionato. c'è un modo per usarlo di default in modo che non devo cambiare tutti i file make. – Nemo

+1

Attaccalo in '.bashrc'? –

+4

Perché questo accetta come miglior risposta mentre la risposta di Raim è quella corretta? –

2

Basta fare cammino sicuro macports' viene prima nella vostra $PATH. Oppure usa gcc-mp-4.6 o qualcosa del genere.

+0

Oppure rimuovi quello vecchio: P – jli

+3

@jli, quello da/usr/bin'? Non sembra una buona idea :) –

+0

@ MichaelKrelin-hacker hai ancora bisogno di impostare il gcc attivo come sopra indicato. – Chris

92

È possibile controllare il collegamento simbolico in /opt/local/bin/gcc utilizzando port select. Puoi vedere la versione disponibile usando port select --list gcc. Qualunque cosa elencata con mp- come prefisso si riferisce alla porta di MacPorts, gcc42 e llvm-gcc42 si riferiscono ai compilatori forniti con Xcode da Apple.

Esempio dal mio sistema:

$ port select --list gcc 
Available versions for gcc: 
    gcc42 
    llvm-gcc42 
    mp-gcc45 
    none (active) 
$ sudo port select --set gcc mp-gcc45 
Password: 
Selecting 'mp-gcc45' for 'gcc' succeeded. 'mp-gcc45' is now active. 

Dopo di che, sia aperta una nuova finestra di terminale o un problema hash -r per rendere bash riconoscere il cambiamento.

+0

Ho fatto questo, e quando digito 'porta select --list gcc', dice che mp-gcc47 è attivo. Tuttavia, quando faccio 'gcc --version', dice ancora che sta usando la versione 4.2 ... Ho provato ad aprire un nuovo terminale e digitare' hash -r'. Qualche idea del perché? – FrancesKR

+0

Controlla il tuo PERCORSO, forse c'è qualche altro gcc (o un link simbolico) prima di/opt/local/bin. Potrebbe anche esserci qualche alias o funzione nella tua shell. Prova 'digita -a gcc' per vedere quali usi bash per la ricerca. – raimue

+0

Quando eseguo 'digita -a gcc', ottengo due righe:" gcc è/usr/bin/gcc gcc è/opt/local/bin/gcc ". Quando stampo il mio PERCORSO, ottengo ".:/Opt/local/var/macports:/usr/local/bin:/sw/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/hallamsoft:/opt/local/bin:/usr/local/git/bin:/usr/texbin:/usr/X11/bin". Scusa, non sono del tutto sicuro di cosa significhi uno di questi, ma ho messo Macports al primo posto nel mio percorso. – FrancesKR

Problemi correlati