Questa pagina ha lo scopo di offrire una guida per evitare alcuni problemi comuni quando si installa GCC, i documenti ufficiali di installazione sono nella sezione Installing GCC della documentazione principale di GCC. N.B. queste istruzioni di installazione si riferiscono al baule di sviluppo, le istruzioni di installazione per le versioni rilasciate sono incluse nei sorgenti di rilascio.
Per la maggior parte delle persone il modo più semplice per installare GCC è installare un pacchetto fatto per il tuo sistema operativo. Il progetto GCC non fornisce binari precostruiti di GCC, solo il codice sorgente, ma tutte le distribuzioni GNU/Linux includono pacchetti per GCC. I sistemi basati su BSD includono GCC nelle loro collezioni di porte. Per altri sistemi operativi la pagina Installing GCC: Binaries elenca alcune fonti di terze parti di binari di GCC.
Se non riesci a trovare i binari adatti al tuo sistema, o hai bisogno di una versione più recente di quella disponibile, dovrai costruire GCC dai sorgenti per poterlo installare.
Costruire GCC
Molte persone si affrettano a provare a costruire GCC senza leggere correttamente i documenti di installazione e fanno uno o più di questi errori comuni:
-
non eseguire ./configure dall’interno della directory dei sorgenti, questo non è supportato. Devi eseguire configure dall’esterno della directory dei sorgenti, in una directory separata creata per la compilazione (questa è una FAQ)
-
se GCC si collega dinamicamente alle librerie di supporto GMP, MPFR o MPC allora le relative librerie condivise devono essere nel percorso del linker dinamico, sia quando si costruisce gcc che quando si usa il compilatore installato (anche questa è una FAQ)
Biblioteche di supporto
Vedi Installazione di GCC: Prerequisiti per il software richiesto per compilare GCC. Se non hai le librerie di supporto GMP, MPFR e MPC già installate come parte del tuo sistema operativo, ci sono due modi semplici per procedere e un modo difficile e soggetto a errori. Per qualche ragione la maggior parte delle persone sceglie il modo difficile. I modi semplici sono:
-
Se fornisce versioni sufficientemente recenti, usate il sistema di gestione dei pacchetti del vostro sistema operativo per installare le librerie di supporto nelle posizioni standard del sistema. Per i sistemi basati su Debian, incluso Ubuntu, si dovrebbero installare i pacchetti libgmp-dev, libmpfr-dev e libmpc-dev. Per i sistemi basati su RPM, inclusi Fedora e SUSE, dovresti installare i pacchetti gmp-devel, mpfr-devel e libmpc-devel (o mpc-devel su SUSE). I pacchetti installeranno le librerie e gli header nelle directory standard del sistema in modo che possano essere trovati automaticamente quando si costruisce GCC.
-
In alternativa, dopo aver estratto l’archivio dei sorgenti di GCC, esegui semplicemente lo script ./contrib/download_prerequisites nella directory dei sorgenti di GCC. Questo scaricherà le librerie di supporto e creerà dei link simbolici, facendole compilare automaticamente come parte del processo di compilazione di GCC. Imposta GRAPHITE_LOOP_OPT=no nello script se vuoi compilare GCC senza ISL, che è necessario solo per le ottimizzazioni opzionali di Graphite.
Il modo difficile, che non è raccomandato, è scaricare i sorgenti per GMP, MPFR e MPC, quindi configurare e installare ciascuno di essi in posizioni non standard, poi configurare GCC con –with-gmp=/some/silly/path/gmp –with-mpfr=/some/silly/path/mpfr –with-mpc=/some/silly/path/mpc, quindi essere costretti a impostare LD_LIBRARY_PATH=/some/silly/path/gmp:/some/silly/path/mpfr:/some/silly/path/mpc/lib nel vostro ambiente per sempre. Questo è sciocco e causa grossi problemi a chiunque non capisca come i linker dinamici trovano le librerie in fase di esecuzione. Non fatelo. Se la compilazione di GCC fallisce quando si usa una qualsiasi delle opzioni –with-gmp o –with-mpfr o –with-mpc allora probabilmente non si dovrebbe usare.
Configurazione
Vedi Installare GCC: Configurazione per la documentazione completa. Uno dei maggiori vantaggi di eseguire srcdir/configure dall’esterno della directory dei sorgenti (invece di eseguire ./configure) è che la directory dei sorgenti non verrà modificata in alcun modo, quindi se la tua compilazione fallisce o se vuoi riconfigurare e compilare di nuovo, devi semplicemente cancellare tutto ciò che si trova in objdir e ricominciare.
Per esempio, configurare e costruire GCC 4.6.2 (con supporto per C, C++, Fortran e Go) dovrebbe essere semplice come:
tar xzf gcc-4.6.2.tar.gzcd gcc-4.6.2./contrib/download_prerequisitescd ..mkdir objdircd objdir$PWD/../gcc-4.6.2/configure --prefix=$HOME/GCC-4.6.2 --enable-languages=c,c++,fortran,gomakemake install
Il passo del make richiede molto tempo. Se il vostro computer ha più processori o core potete velocizzarlo costruendo in parallelo usando make -j 2 (o un numero più alto per più parallelismo).
Se la compilazione fallisce e il tuo comando configure ha molte opzioni complicate, dovresti provare a rimuovere le opzioni e mantenerlo semplice. Non aggiungete molte opzioni di configurazione che non capite, potrebbero essere la ragione per cui la vostra compilazione fallisce.