Installazione e Guida Completa a GCC su Ubuntu: Tutto Ciò che Devi Sapere

目次

1. Introduzione

Che cos’è GCC?

GCC (GNU Compiler Collection) è un compilatore open source capace di compilare diversi linguaggi di programmazione come C e C++. È ampiamente utilizzato come compilatore predefinito in molte distribuzioni Linux.

Caratteristiche principali di GCC:

  • Supporta più linguaggi, incluso C, C++, Fortran, Java e altri.
  • Open source e utilizzabile liberamente da chiunque.
  • Permette una compilazione veloce e affidabile.

Perché usare GCC su Ubuntu?

  1. Incluso come pacchetto standard
    I repository di Ubuntu includono GCC di default, rendendone facile l’installazione.
  2. Abbondanza di supporto e documentazione
    Poiché ci sono molti utenti nel mondo, esiste una vasta quantità di informazioni per la risoluzione di problemi e la personalizzazione.
  3. Uso gratuito
    Puoi costruire un ambiente di sviluppo potente a basso costo.
  4. Facile da personalizzare
    Puoi gestire più versioni di GCC, permettendoti di costruire un ambiente adatto a ciascun progetto.

Sommario

In questo articolo abbiamo introdotto una panoramica di GCC e i vantaggi del suo utilizzo su Ubuntu. GCC è un compilatore potente che supporta più linguaggi ed è gratuito da usare, e su Ubuntu è particolarmente facile da installare.

侍エンジニア塾

2. Prerequisiti

Aggiorna il sistema e verifica le dipendenze

Per prima cosa, aggiorna le informazioni sui pacchetti di Ubuntu allo stato più recente. Questo aiuta a prevenire errori durante l’installazione.

1. Aggiorna il sistema allo stato più recente

sudo apt update
sudo apt upgrade
  • sudo apt update: Aggiorna la lista dei pacchetti alla versione più recente.
  • sudo apt upgrade: Aggiorna i pacchetti installati alle versioni più nuove.

Note:

  • L’aggiornamento potrebbe richiedere diversi minuti.
  • Se dopo l’aggiornamento appare un messaggio “restart required”, riavvia il sistema.

Verifica gli strumenti di sviluppo

Per installare GCC, sono necessari strumenti di sviluppo di base e pacchetti correlati. Esegui il comando seguente per installare in anticipo i pacchetti necessari.

sudo apt install build-essential

Questo comando installa strumenti di sviluppo essenziali, incluso GCC.

Esempi di pacchetti installati:

  • gcc (compilatore C)
  • g++ (compilatore C++)
  • make (strumento di build)

Controlla lo stato dell’installazione

Per confermare quali pacchetti sono installati e verificare le loro versioni, usa il comando seguente:

gcc --version

Output di esempio:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Se vedi questo output, puoi confermare che GCC è stato installato correttamente.

Sommario dei prerequisiti

A questo punto hai completato i prerequisiti necessari per installare GCC.

  • Aggiornato e aggiornato il sistema allo stato più recente.
  • Installato i pacchetti necessari per preparare l’ambiente.
  • Verificato lo stato di installazione e la versione di GCC.

3. Come installare GCC

Passaggi base per l’installazione

Su Ubuntu, GCC può essere installato facilmente dai repository ufficiali. Segui i passaggi seguenti per eseguire l’installazione.

  1. Installa il pacchetto build-essential
sudo apt install build-essential

Questo comando installa GCC, G++ e l’insieme completo degli strumenti di sviluppo.

  1. Conferma l’avanzamento dell’installazione
    Durante l’installazione, se appare “Proceed? (Y/n)”, digita “Y” e premi Invio.

Verifica dopo l’installazione

Dopo aver completato l’installazione, verifica la versione di GCC per confermare che tutto è stato installato correttamente:

gcc --version

Output di esempio:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Se le informazioni sulla versione vengono visualizzate come mostrato, GCC è stato installato con successo.

Installazione di strumenti o librerie aggiuntive

A volte l’installazione di GCC da sola non è sufficiente, quindi potresti voler installare i seguenti pacchetti aggiuntivi:

  1. Installa G++ (compilatore C++)
sudo apt install g++
  1. Installa strumenti di debug
sudo apt install gdb
  1. Installa pagine manuali di sviluppo
sudo apt install manpages-dev

Questo garantisce che tu possa fare riferimento subito all’aiuto e alle pagine manuali relative a GCC quando necessario.

Risoluzione problemi di installazione fallita

  1. Pacchetto non trovato
E: Unable to locate package build-essential

Soluzione: Aggiorna le informazioni del repository:

sudo apt update
sudo apt upgrade
  1. Si verificano errori di permesso
Permission denied

Soluzione: Usa sudo all’inizio dei comandi per eseguirli con privilegi di amministratore.

Sommario dei passaggi di installazione

In questa sezione, abbiamo spiegato come installare GCC e verificarne l’installazione, così come come installare pacchetti aggiuntivi.

Concetti chiave:

  • Usa sudo apt install build-essential per installare rapidamente.
  • Controlla la versione per verificare lo stato dell’installazione.
  • Aggiungi G++, gdb e altri strumenti secondo necessità.

4. Uso base di GCC

Crea e compila un programma semplice

  1. Crea un programma di esempio

Per prima cosa, crea un semplice programma “Hello, World!”:

nano hello.c

Quando l’editor si apre, inserisci il codice seguente:

#include <stdio.h>

int main() {
    printf("Hello, World!n");
    return 0;
}

Dopo aver inserito, premi Ctrl + X per salvare, quindi premi Y per confermare ed uscire.

Compila il programma

Successivamente, compila questo programma usando GCC:

gcc hello.c -o hello

Spiegazione del comando:

  • gcc: Il comando del compilatore.
  • hello.c: Il file sorgente da compilare.
  • -o hello: Specifica il nome del file di output “hello”.

Esegui il programma compilato

Esegui il programma compilato con il comando seguente:

./hello

Output previsto:

Hello, World!

Se questo viene visualizzato, il programma è stato compilato ed eseguito con successo.

Gestione errori

  1. Errori dovuti a errori di codice

Messaggio di errore di esempio:

hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
    return 0;

Soluzione:
Il messaggio di errore indica la posizione (ad esempio la linea 3). Controlla il tuo codice e correggi gli errori di sintassi.

  1. Errore di compilazione

Errore di esempio:

gcc: command not found

Soluzione:
GCC potrebbe non essere installato. Reinstalla usando:

sudo apt install build-essential
  1. Errore in fase di esecuzione

Errore di esempio:

bash: ./hello: Permission denied

Soluzione:
Se il file non ha permessi di esecuzione, usa:

chmod +x hello
./hello

Opzioni di ottimizzazione

GCC ti permette di usare opzioni di ottimizzazione per migliorare le prestazioni del programma.

Esempio: specifica il livello di ottimizzazione

gcc -O2 hello.c -o hello
  • -O1: Ottimizzazioni di base.
  • -O2: Ottimizzazioni più avanzate.
  • -O3: Ottimizzazione massima (priorizzando velocità di esecuzione).

Questo ti aiuta a ottimizzare la velocità d’esecuzione o la dimensione del codice in modo più efficiente.

Sommario

In questa sezione abbiamo trattato come creare, compilare ed eseguire un programma di base usando GCC.

Punti chiave:

  • Hai imparato come creare un codice di esempio e compilarlo.
  • Abbiamo visto come gestire errori quando si verificano.
  • Abbiamo introdotto opzioni di ottimizzazione per migliorare le prestazioni.

5. Gestione di versioni multiple

Installare versioni multiple

Su Ubuntu, puoi installare versioni diverse di GCC simultaneamente. Vediamo come installare più versioni con i passaggi seguenti.

  1. Controlla le versioni disponibili
sudo apt search gcc-

Questo comando ti consente di visualizzare l’elenco delle versioni di GCC presenti nel repository.

Output di esempio:

gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
  1. Installa le versioni richieste

Ad esempio, installa GCC 9 e GCC 10:

sudo apt install gcc-9 gcc-10

Una volta completata l’installazione, procedi a configurare la commutazione tra versioni.

Come cambiare versione

Ubuntu supporta il comando update-alternatives per cambiare facilmente versione di GCC.

  1. Registra le versioni di GCC installate con update-alternatives

Esegui:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100

In questa configurazione, GCC 10 è registrato come predefinito (priorità 100).

  1. Seleziona la versione da usare

Usa il comando seguente per scegliere manualmente la versione desiderata:

sudo update-alternatives --config gcc

Output di esempio:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-10  100       auto mode
  1            /usr/bin/gcc-9   90        manual mode
  2            /usr/bin/gcc-10  100       manual mode

Press <enter> to keep the current choice[*], or type selection number:

Inserisci il numero desiderato e premi Invio.

Usare una versione specifica per progetto

Se vuoi usare una versione particolare per ciascun progetto, puoi modificare i collegamenti simbolici di conseguenza.

  1. Crea o aggiorna il link
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc

Questo comando imposta GCC 9 come versione predefinita.

  1. Verifica la versione
gcc --version

Verifica che la versione configurata sia applicata correttamente.

Sommario

In questa sezione abbiamo spiegato come installare versioni multiple di GCC e usare update-alternatives per cambiarle facilmente.

Punti chiave:

  • Installa le versioni che ti servono e gestiscile con update-alternatives.
  • Puoi anche impostare collegamenti simbolici per usare una versione specifica per progetto.

6. Risoluzione dei problemi

Errori durante l’installazione e come affrontarli

Esempio di errore 1: Pacchetto non trovato

E: Unable to locate package build-essential

Causa:
La lista dei pacchetti non è aggiornata, oppure la configurazione del repository presenta problemi.

Soluzione:
Esegui i seguenti comandi per aggiornare le informazioni del repository:

sudo apt update
sudo apt upgrade
sudo apt install build-essential

Rimedi aggiuntivi:

sudo add-apt-repository universe
sudo apt update

Questo può permettere al pacchetto di essere trovato.

Esempio di errore 2: Permesso negato

Permission denied

Causa:
I comandi non vengono eseguiti con privilegi di amministratore.

Soluzione:
Prepara sudo all’inizio di tutti i comandi di installazione.

sudo apt install build-essential

Errori durante la compilazione e come affrontarli

Esempio di errore 1: Compilatore non trovato

gcc: command not found

Causa:
GCC non è installato oppure il PATH non è impostato correttamente.

Soluzione:
Verifica se GCC è installato:

sudo apt install gcc

Se è installato, verifica e aggiusta il collegamento simbolico:

sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc

Esempio di errore 2: Errore di collegamento librerie

undefined reference to 'main'

Causa:
La funzione main non è definita nel tuo programma, o il collegamento non è riuscito.

Soluzione:
Assicurati che la funzione main sia inclusa, e ricompila con opzioni di collegamento, ad esempio:

gcc -o output main.c -lm

Errori in fase di esecuzione e come affrontarli

Esempio di errore 1: Nessun permesso di esecuzione

bash: ./program: Permission denied

Causa:
Il file eseguibile non ha permessi di esecuzione.

Soluzione:
Concedi il permesso di esecuzione:

chmod +x program
./program

Esempio di errore 2: Librerie mancanti

error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory

Causa:
Le librerie condivise richieste non sono installate.

Soluzione:
Controlla il nome della libreria mancante e installala:

sudo apt install libXXX-dev

Errori durante il cambio versione e soluzioni

Esempio di errore: cambio non applicato

gcc --version

Se la versione cambiata non è mostrata, riesamina le impostazioni di update-alternatives.

Soluzione:

  1. Controlla l’elenco delle alternative:
sudo update-alternatives --config gcc
  1. Seleziona il numero corretto.
  2. Aggiorna il collegamento simbolico.
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc

Sommario

In questa sezione abbiamo spiegato gli errori comuni che si verificano durante l’installazione e l’uso di GCC, e le strategie per risolverli.

Punti chiave:

  • Gli errori di installazione possono spesso essere affrontati aggiornando i repository o modificando la configurazione dei repository.
  • Gli errori di compilazione possono essere risolti controllando il codice e le opzioni di collegamento.
  • Gli errori a runtime spesso derivano da problemi di permesso o librerie mancanti.
  • I problemi nel cambio versione possono essere gestiti tramite collegamenti simbolici e modifiche a update-alternatives.

7. FAQ

Come posso installare l’ultima versione di GCC?

Domanda:
Voglio installare l’ultima versione di GCC, ma il repository predefinito offre solo versioni più vecchie. Cosa devo fare?

Risposta:
Per installare l’ultima versione di GCC, puoi aggiungere un repository PPA.

  1. Aggiungi il repository PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
  1. Aggiorna la lista dei pacchetti:
sudo apt update
  1. Installa la versione più recente:
sudo apt install gcc-12
  1. Verifica la versione:
gcc --version

Come disinstallare GCC?

Domanda:
Voglio disinstallare GCC. Come procedere?

sudo apt remove gcc
sudo apt autoremove

Se vuoi rimuovere anche gli strumenti correlati, aggiungi:

sudo apt remove build-essential

Cosa fare se sono selezionabili solo versioni più vecchie?

Domanda:
Anche quando uso update-alternatives --config gcc, appaiono solo versioni più vecchie. Come posso aggiungere una versione più recente?

Risposta:
Aggiungi manualmente la versione più nuova alle impostazioni alternative.

  1. Installa la versione necessaria:
sudo apt install gcc-12
  1. Aggiungila manualmente alle alternative:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
  1. Seleziona la versione:
sudo update-alternatives --config gcc

E se si verificano errori di dipendenza?

Domanda:
Si verificano errori di dipendenza durante l’installazione di GCC. Come posso risolverli?

Risposta:
Gli errori di dipendenza possono derivare dal fatto che il sistema non è aggiornato. Esegui:

sudo apt update
sudo apt upgrade

Se questo non risolve, correggi automaticamente le dipendenze rotte:

sudo apt --fix-broken install

Come usare una versione specifica di GCC per un progetto particolare?

Domanda:
Voglio usare versioni di GCC diverse per progetto. Come posso configurarlo?

Risposta:
Crea un collegamento simbolico nella directory del progetto che punti al binario GCC desiderato.

  1. Crea il link locale:
ln -s /usr/bin/gcc-9 ./gcc
  1. Usalo localmente nei comandi di compilazione:
./gcc -o program program.c

Cosa fare se appare “command not found”?

Domanda:
Anche se ho installato GCC, appare “gcc: command not found”. Cosa devo fare?

Risposta:
Per prima cosa, conferma l’installazione:

dpkg -l | grep gcc

Se GCC non è installato, reinstallalo:

sudo apt install gcc

Se ancora fallisce, controlla il collegamento simbolico:

ls -l /usr/bin/gcc

Se il link è rotto, correggilo:

sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc

Sommario

In questa sezione abbiamo presentato domande frequenti e soluzioni concrete per GCC.

Punti chiave:

  • L’ultima versione può essere installata tramite repository PPA.
  • Disinstallazione e gestione versione sono facilmente trattabili con update-alternatives.
  • Abbiamo anche fornito esempi concreti di comandi per la risoluzione dei problemi.

8. Conclusione e prossimi passi

Riepilogo dell’articolo

  1. Panoramica e ruolo di GCC
  • GCC è un compilatore potente che supporta più linguaggi come C e C++.
  • Su Ubuntu può essere facilmente installato dai repository ufficiali, rendendolo ideale per costruire ambienti di sviluppo.
  1. Passaggi di installazione e preparazione
  • Aggiornato il sistema e installato il pacchetto build-essential.
  • Verificato versioni e risolto problemi di dipendenza.
  1. Uso base
  • Abbiamo spiegato come creare, compilare e eseguire programmi di esempio.
  • Abbiamo discusso di come gestire errori e usare opzioni di ottimizzazione.
  1. Gestione versioni multiple e cambio
  • Abbiamo spiegato come usare update-alternatives per passare tra versioni di GCC per ciascun progetto.
  1. Risoluzione problemi e FAQ
  • Abbiamo coperto errori possibili nell’installazione e nell’uso e fornito soluzioni concrete.

Risorse aggiuntive

Ecco alcune risorse per approfondire l’apprendimento o applicazioni avanzate:

  1. Documentazione ufficiale di Ubuntu
  1. Documentazione ufficiale di GNU GCC
  1. Guide e forum Linux
  • Linux Console pubblica informazioni di risoluzione problemi su vari argomenti Linux.
  • Qiita e Stack Overflow sono ottimi per consultare esempi di codice e risposte.

Prossimi passi

  1. Applica GCC in progetti reali
  • Usa GCC in progetti concreti ed esplora sviluppo avanzato.
  1. Utilizza librerie ed estensioni
  • Installa librerie aggiuntive man mano che servono per estendere le funzionalità del progetto.
  1. Impara nuovi linguaggi e strumenti
  • Attraverso lo studio di altri linguaggi o strumenti di build, punta a ulteriori progressi tecnici.
  1. Partecipa alla comunità
  • Unisciti a forum o progetti open source, condividi conoscenze e sviluppa competenze pratiche insieme.

Parole finali

In questo articolo abbiamo spiegato passo dopo passo come installare e usare GCC su Ubuntu. Copre tutto, dalle basi alla risoluzione dei problemi, rendendo semplice anche per principianti configurare il proprio ambiente di sviluppo.

Un’ultima nota:
Usa questo articolo come riferimento per applicare GCC nei tuoi progetti, divertiti a programmare e consulta la FAQ o le risorse aggiuntive se emergono nuove domande.

Nel prossimo articolo, ho in programma di trattare le basi della sintassi di C e C++ e tecniche di sviluppo più avanzate. Resta sintonizzato!