Come installare gcc-4.8


94

Ho controllato la versione di gcc sul mio sistema.

Attualmente è 4.6.3. Ho letto che gcc-4.8 è uscito.

Ho provato i seguenti comandi senza successo:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

Qualcuno sa come installare questo pacchetto su 12.04?


La risposta di @ maggotbrain ha funzionato per me, anche se ho dovuto aggiungere: sudo apt-get install gcc-multilib mentre stavo correndo questo problema: superuser.com/questions/432202/make-fails-compiling-gcc
skillman

2
Nota per i futuri googler: se ricevi un messaggio di errore come un riferimento indefinito a `lexer_line 'È a causa di strumenti mancanti: bisonte e flex sudo apt-get install bison sudo apt-get install flex come indicato qui: http: // stackoverflow. com / questions / 4262531 / trouble-building-gcc-4-6
virtualPN

Risposte:


119

GCC-4.8 è ora disponibile per 12.04 Precise?

Aggiornamento : a partire dal 6/05/2013, è attualmente disponibile una versione di gcc 4.8.1 per 12.04 (preciso) disponibile su https://launchpad.net/~ubuntu-toolchain-r/+archive/test .

La risposta breve è: gcc-4.8è attualmente disponibile per 12.04 (Preciso) tramite la toolchain PPA o compilando la fonte (vedi sotto per i dettagli).

Annuncio di rilascio

L' annuncio per il rilascio di gcc-4.8 è stato fatto il 22 marzo, quindi probabilmente non lo vedrai ancora in un repository ufficiale.

Tuttavia, sembra che Launchpad abbia un PPA disponibile per le build di test della toolchain che include gcc-4.8, qui: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

Secondo il log delle modifiche e l'elenco dei pacchetti , ci sono debs per i386, amd64, arm e powerpc e sono stati costruiti contro raring 13.04.

L'ultima versione disponibile di gcc, per 12.04, è 4.8.1 ed è disponibile nella toolchain PPA.

Aggiunta della toolchain / test PPA:

Per aggiungere il PPA al tuo sistema, apri un terminale ( Ctrl+ Alt+ t) ed esegui i seguenti comandi:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

Ti verrà anche richiesto di installare una serie di pacchetti suggeriti. Questi pacchetti sono consigliati, ma facoltativi, per l'installazione di gcc-4.8.

Quali funzionalità C ++ sono disponibili in gcc-4.8 che non sono disponibili in gcc-4.7.2?

  • Secondo GNU.ORG , gcc-4.7, supporta una serie di funzionalità C ++ 11 .
  • A partire dalla versione gcc-4.8, gcc-4.7 non supporta 8 funzionalità su 64 (vedere Supporto C ++ 0x / C ++ 11 in GCC )

  • Queste caratteristiche sono:

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • Per un elenco completo delle modifiche in gcc-4.8, vedere il Changelist

Ho bisogno di queste funzionalità di gcc su 12.04 Precise, ora. Come posso ottenerli?

Costruire GCC-4.8 dalla fonte:

Se hai bisogno di gcc-4.8 su 12.04 ora, l'unica opzione è crearlo dal sorgente .

Leggere le FAQ sull'installazione di GCC prima dell'installazione.

Puoi scaricare gcc-4.8 da uno dei siti mirror di gnu.org o direttamente dal loro server SVN .

Ecco un esempio di passaggi da compilare dal sorgente (vedere qui per ulteriori dettagli.) Questi possono variare a seconda del sistema e delle preferenze.

  1. Scarica il codice sorgente

    • Crea una directory di build ( mkdir gcc-build && cd gcc-build)
    • Scarica il file di origine: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(modifica questo comando per utilizzare un sito mirror appropriato .
    • Decomprimi il file ( tar -xvjf <file name>)
  2. Installa alcune librerie aggiuntive ( sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Compila la fonte: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Esegui make(il completamento del processo richiederà del tempo. Vai a preparare un caffè o cuoci dei biscotti. ;-))
  5. Installa il codice: sudo make install

Una volta completato questo processo, eseguire il comando gcc --versionper verificare che l'installazione sia stata completata correttamente. Dovresti vedere qualcosa di simile al seguente output:

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 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.

La linea di fondo: Ringrazia tutte quelle persone che ti forniscono backport Ubuntu facili da installare. Dai loro alcuni dei biscotti che hai cotto durante l'esecuzione make. ;-)


Ottima risposta, tranne:E: Unable to locate package gcc-4.8
John Dibling

2
L'installazione delle librerie aggiuntive non è stata sufficiente per me, ma l'esecuzione ./contrib/download_prerequisites.shè stata corretta (da stackoverflow.com/questions/9253695/… ).
Gauthier,

7
Nota: ho anche dovuto installare il pacchetto g ++ - 4.8 (oltre a gcc-4.8) per poter compilare il codice C ++. In caso contrario, mi è stato sempre l'errore di compilazione: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8.
Boris Dalstein il

Sono stato in grado di installare con successo gcc4.8 su Precise
Homunculus Reticulli il

1
@ John Dibling - Abbastanza sicuro il metodo esposto installa i file, tuttavia in quanto tale non si crea mai alcun pacchetto né si installa alcun ... quindi non è possibile trovarlo (loro) :-). Bene c'è un modo rapido per compilare automaticamente i pacchetti usando la cartella debian dal link . L'ho fatto con successo per altri pacchetti. Questa soluzione installa tutti i pacchetti correlati tra cui g ++ ecc ...
Antonio

1

Quindi la risposta sopra funziona, almeno per l'installazione manuale. Anche se anche dopo sudo make install, l'esecuzione funziona gccsolo con la versione 4.6.3 di serie. Anche provare gcc-4.8o gcc-4.8.0non funziona. La corsa /app/gcc/4.8.0/bin/gccsembra essere l'unica cosa che funziona per me. Voglio dire, è un po 'zoppo, ma almeno funziona.


5
[: facepalm:] Prima di chiamare le cose "zoppe", forse dovresti aggiornare le tue conoscenze sui sistemi operativi. Potresti iniziare con la lettura del concetto di PERCORSO: en.wikipedia.org/wiki/PATH_(variable)
pszilard

1
Certamente, dato che non si installa alcun pacchetto con lo script DEBIAN / postinst, è necessario impostare manualmente la versione predefinita da utilizzare dal proprio sistema tramite il cmd update-alternatives . line ... Se hai usato --prefix = / usr non è necessario immischiarti con PATH ...
Antonio
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.