Come installare e utilizzare GCC su Ubuntu: Guida completa per sviluppatori

1. Introduzione

Cos’è GCC?

GCC (GNU Compiler Collection) è un compilatore open‑source in grado di compilare più linguaggi di programmazione, tra cui C e C++. È ampiamente usato come compilatore standard per molte distribuzioni Linux.

Caratteristiche principali di GCC:

  • Supporta più linguaggi come C, C++, Fortran e Java.
  • Open‑source e liberamente disponibile per chiunque.
  • Consente compilazioni rapide e altamente affidabili.

Perché usare GCC su Ubuntu?

  1. Fornito come pacchetto standard GCC è incluso nei repository ufficiali di Ubuntu, rendendo l’installazione semplice.
  2. Documentazione estesa e supporto della community Con una vasta base di utenti globale, le risorse per la risoluzione dei problemi e la personalizzazione sono abbondanti.
  3. Gratuito Puoi creare un potente ambiente di sviluppo a costo zero.
  4. Facile personalizzazione È possibile gestire più versioni di GCC, configurando l’ambiente ottimale per ciascun progetto.

Riepilogo

Questo articolo introduce le basi di GCC e i vantaggi del suo utilizzo su Ubuntu. GCC è un compilatore potente, multilingua, disponibile gratuitamente, e l’installazione su Ubuntu è particolarmente semplice.

2. Preparazione

Aggiornamento del sistema e verifica delle dipendenze

Per prima cosa, aggiorna le informazioni sui pacchetti di Ubuntu all’ultima versione. Questo aiuta a prevenire errori durante l’installazione.

1. Aggiorna il tuo sistema

sudo apt update
sudo apt upgrade
  • sudo apt update : Aggiorna l’elenco dei pacchetti.
  • sudo apt upgrade : Aggiorna i pacchetti installati alle versioni più recenti.

Note:

  • Il processo di aggiornamento può richiedere diversi minuti.
  • Se ti viene chiesto di riavviare dopo, riavvia il sistema.

Verifica degli strumenti di sviluppo

Per installare GCC sono necessari gli strumenti di sviluppo di base e alcuni pacchetti. Esegui il comando seguente per installarli:

sudo apt install build-essential

Questo comando installa GCC e gli strumenti di sviluppo essenziali.

Esempi di pacchetti installati:

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

Verifica dello stato di installazione

Usa il comando seguente per verificare l’installazione e controllare la versione:

gcc --version

Esempio di output:

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

Se appare questo risultato, GCC è stato installato correttamente.

Riepilogo della preparazione

Hai ora completato le preparazioni necessarie per installare GCC.

  • Sistema aggiornato e potenziato.
  • Pacchetti richiesti installati per configurare l’ambiente.
  • Verificata l’installazione di GCC e controllata la sua versione.

3. Installazione di GCC

Procedura di installazione di base

Su Ubuntu, GCC può essere installato facilmente dal repository ufficiale. Segui i passaggi qui sotto:

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

Questo comando installa GCC, G++, e altri strumenti di sviluppo essenziali.

  1. Conferma l’avanzamento dell’installazione Se ti viene chiesto “Continue? (Y/n)”, inserisci “Y” e premi Invio.

Verifica dell’installazione

Una volta completata l’installazione, verifica la versione di GCC:

gcc --version

Esempio di output:

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

Se appare l’informazione sulla versione, GCC è stato installato con successo.

4. Uso di base di GCC

Creazione e compilazione di un programma semplice

  1. Crea un programma di esempio

Iniziamo creando un semplice programma “Hello, World!”.

nano hello.c

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

#include <stdio.h>

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

Dopo aver inserito il codice, premi Ctrl + X per salvare, quindi Y per confermare.

Compilazione del programma

Successivamente, compila il 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 eseguibile di output.

Esecuzione del programma compilato

Esegui il programma compilato con il seguente comando:

./hello

Output di esempio:

Hello, World!

Se vedi questo output, il tuo programma è stato compilato ed eseguito correttamente.

Gestione degli errori

  1. Errori causati da 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 mostra il numero di riga in cui si è verificato il problema. Rivedi e correggi il codice.

  1. Compilatore non trovato

Messaggio di errore di esempio:

gcc: command not found

Soluzione:
GCC potrebbe non essere installato. Reinstallalo con il seguente comando:

sudo apt install build-essential
  1. Errori di runtime

Messaggio di errore di esempio:

bash: ./hello: Permission denied

Soluzione:
Concedi i permessi di esecuzione al file:

chmod +x hello
./hello

Opzioni di ottimizzazione

GCC ti permette di ottimizzare il tuo codice per migliori prestazioni.

Esempio: Specificare i livelli di ottimizzazione

gcc -O2 hello.c -o hello
  • -O1 : Ottimizzazioni di base.
  • -O2 : Ottimizzazioni più avanzate.
  • -O3 : Ottimizzazione massima per le prestazioni.

Queste opzioni aiutano a migliorare la velocità di esecuzione e a ridurre le dimensioni del codice.

Riepilogo

Questa sezione ha spiegato come scrivere, compilare ed eseguire un programma di base usando GCC.

Punti chiave:

  • Imparato come creare e compilare un programma di esempio.
  • Rivisti i modi per gestire gli errori comuni.
  • Imparato come usare le opzioni di ottimizzazione per migliorare le prestazioni del programma.

5. Gestione di più versioni

Installazione di più versioni

Ubuntu ti permette di installare diverse versioni di GCC simultaneamente. Segui i passaggi seguenti per configurarle.

  1. Verifica le versioni disponibili
    sudo apt search gcc-
    

Questo comando elenca le versioni di GCC disponibili 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

Dopo l’installazione, procedi a configurare il cambio di versione.

Cambiare versione

Usa il comando update-alternatives per cambiare facilmente le versioni di GCC.

  1. Registra le versioni di GCC installate

Esegui i comandi seguenti per registrare le versioni di GCC con update-alternatives:

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

Questa configurazione assegna a GCC 10 una priorità più alta.

  1. Seleziona la versione da usare
    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 della versione desiderata.

Usare una versione specifica per progetto

Se vuoi usare una versione diversa di GCC per progetti specifici, regola i collegamenti simbolici di conseguenza.

  1. Crea il collegamento simbolico
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    
  1. Verifica la versione
    gcc --version
    

Conferma che la versione selezionata sia attiva.

Riepilogo

Questa sezione ha coperto come installare più versioni di GCC e passare da una all’altra usando update-alternatives.

Punti chiave:

  • Installa le versioni richieste e gestiscile con update-alternatives.
  • Configura i collegamenti simbolici per utilizzare versioni specifiche per progetto.

6. Risoluzione dei problemi

Errori di installazione e soluzioni

Esempio di errore 1: Pacchetto non trovato

E: Unable to locate package build-essential

Causa:
L’elenco dei pacchetti è obsoleto o le impostazioni del repository sono errate.

Soluzione:
Aggiorna le informazioni del repository usando i seguenti comandi:

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

Soluzione aggiuntiva:

sudo add-apt-repository universe
sudo apt update

Questo potrebbe consentire di trovare il pacchetto.

Esempio di errore 2: Errore di permesso

Permission denied

Causa:
Il comando non è stato eseguito con privilegi di amministratore.

Soluzione:
Esegui i comandi di installazione con sudo:

sudo apt install build-essential

Errori di compilazione e soluzioni

Esempio di errore 1: Compilatore non trovato

gcc: command not found

Causa:
GCC non è installato o il PATH non è configurato correttamente.

Soluzione:
Verifica se GCC è installato:

sudo apt install gcc

Se già installato, ripara il collegamento simbolico:

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

Esempio di errore 2: Errori di collegamento della libreria

undefined reference to 'main'

Causa:
Manca la funzione main o ci sono errori di collegamento.

Soluzione:
Assicurati che il tuo codice contenga una funzione main. Ricompila con le opzioni corrette:

gcc -o output main.c -lm

Errori di runtime e soluzioni

Esempio di errore 1: Nessun permesso di esecuzione

bash: ./program: Permission denied

Causa:
L’eseguibile non ha il permesso di eseguire.

Soluzione:
Aggiungi 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:
Una libreria condivisa richiesta non è installata.

Soluzione:
Identifica la libreria mancante e installala:

sudo apt install libXXX-dev

Errori di gestione delle versioni e soluzioni

Esempio di errore: Cambio di versione non applicato

gcc --version

Se l’output non riflette la versione cambiata, ricontrolla le impostazioni di update-alternatives.

Soluzione:

  1. Controlla le configurazioni disponibili.
    sudo update-alternatives --config gcc
    
  1. Seleziona la versione corretta.
  2. Aggiorna il collegamento simbolico.
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    

Riepilogo

Questa sezione ha spiegato gli errori comuni durante l’installazione e l’uso di GCC, insieme a soluzioni specifiche.

Punti chiave:

  • Gli errori di installazione possono essere risolti aggiornando i repository e correggendo le impostazioni.
  • I problemi di compilazione spesso richiedono il controllo del codice o delle opzioni di collegamento.
  • Gli errori di runtime sono spesso causati da permessi o librerie mancanti.
  • I problemi di gestione delle versioni possono essere risolti usando collegamenti simbolici e update-alternatives.

7. Sezione FAQ

Come posso installare l’ultima versione di GCC?

Domanda:
Voglio installare l’ultima versione di GCC, ma il repository di Ubuntu fornisce solo versioni più vecchie. Cosa posso fare?

Risposta:
Aggiungi il repository PPA e installa l’ultima versione.

  1. Aggiungi il PPA:
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    
  1. Aggiorna i pacchetti:
    sudo apt update
    
  1. Installa l’ultima versione di GCC:
    sudo apt install gcc-12
    
  1. Controlla la versione:
    gcc --version
    

Come disinstallare GCC?

Risposta:
Esegui i seguenti comandi:

sudo apt remove gcc
sudo apt autoremove

Per rimuovere gli strumenti di sviluppo correlati:

sudo apt remove build-essential

Cosa fare se compaiono solo versioni vecchie in update-alternatives?

Risposta:
Aggiungi manualmente la versione richiesta:

sudo apt install gcc-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
sudo update-alternatives --config gcc

Come risolvere gli errori di dipendenza?

Risposta:
Prova ad aggiornare il sistema:

sudo apt update
sudo apt upgrade

Se il problema persiste:

sudo apt --fix-broken install

Come utilizzare versioni diverse di GCC per progetti specifici?

Risposta:

  1. Crea un collegamento simbolico locale:
    ln -s /usr/bin/gcc-9 ./gcc
    
  1. Usalo durante la compilazione:
    ./gcc -o program program.c
    

Cosa fare se compare “command not found”?

Risposta:
Verifica se GCC è installato:

dpkg -l | grep gcc

Se non è installato, reinstallalo:

sudo apt install gcc

Se il collegamento simbolico è rotto, sistemalo:

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

Riepilogo

Questa sezione ha trattato domande comuni e soluzioni pratiche relative all’uso di GCC.

Punti chiave:

  • L’ultima versione può essere installata tramite un repository PPA.
  • Disinstallazione e gestione delle versioni avvengono tramite update-alternatives.
  • Sono stati forniti esempi pratici per risolvere errori frequenti.

8. Conclusione e Prossimi Passi

Revisione dei punti principali

  1. Panoramica e scopo di GCC
  • GCC supporta più linguaggi di programmazione come C e C++.
  • Ubuntu offre un facile accesso a GCC tramite i repository ufficiali.
  1. Passaggi di installazione e preparazione
  • Aggiornamento del sistema e installazione del pacchetto build-essential.
  • Verifica delle versioni e risoluzione delle dipendenze.
  1. Uso di base
  • Creazione, compilazione ed esecuzione di codice di esempio.
  • Esplorazione di ottimizzazioni e tecniche di gestione degli errori.
  1. Gestione di più versioni
  • Utilizzo di update-alternatives per cambiare versione di GCC a seconda del progetto.
  1. Risoluzione dei problemi e FAQ
  • Discussione degli errori più comuni e soluzioni passo‑passo.

Risorse aggiuntive

  1. Documentazione ufficiale di Ubuntu
  1. Documentazione ufficiale di GCC
  • Manuale di GCC offre istruzioni avanzate d’uso e opzioni di configurazione.
  1. Risorse per la risoluzione dei problemi su Linux
  • Linux Console contiene varie informazioni per il troubleshooting su Linux.
  1. Piattaforme di apprendimento e forum

Prossimi passi

  1. Applicare GCC nello sviluppo reale
  • Usa GCC per costruire programmi più avanzati nei tuoi progetti.
  1. Ampliare le funzionalità con le librerie
  • Includi librerie aggiuntive per potenziare le capacità del progetto.
  1. Imparare nuovi strumenti e linguaggi
  • Padroneggia strumenti e linguaggi correlati per ampliare il tuo set di competenze.
  1. Unirsi alla community open‑source
  • Partecipa a forum o progetti open‑source per acquisire esperienza pratica e condividere conoscenze.

Considerazioni finali

Questo articolo ha illustrato passo dopo passo l’installazione e l’uso di GCC su Ubuntu. Seguendo i metodi e le pratiche di troubleshooting presentate, chiunque può creare un ambiente di sviluppo affidabile.

Un’ultima nota:
Usa GCC per dare vita alle tue idee software. Se incontri problemi, consulta nuovamente le FAQ o le risorse citate per risolverli in modo efficace.

Il prossimo articolo esplorerà la sintassi di base e le tecniche di sviluppo avanzate in C e C++. Rimanete sintonizzati per gli aggiornamenti!