↓Salta al contenuto principale
Alemasone

Installare un compilatore C e C++ su Windows, Linux e macOS

Come installare GCC con MSYS2 su Windows, build-essential su Linux e gli strumenti di Xcode su macOS, con i comandi per compilare e il setup di VS Code.

7 min di lettura Aggiornato il
Terminale con la compilazione di un programma in C++ e il messaggio di esito positivo
In questa pagina
Su Linux e macOS il compilatore si installa con un comando. Su Windows oggi la strada giusta è MSYS2, che ti dà GCC tramite MinGW-w64 e lo aggiorna da solo. Il vecchio MinGW di SourceForge, quello con l’Installation Manager che trovi in tante guide (anche nella prima versione di questa), è fermo da anni, produce solo programmi a 32 bit e non va più usato.

Il compilatore trasforma il codice sorgente in un programma eseguibile. Per C e C++ i più usati sono due: GCC, in giro dal 1987 e disponibile ovunque, e Clang, più giovane, con messaggi di errore più chiari e predefinito su macOS. L’ultima versione di GCC è la 16, uscita ad aprile 2026, che per il C++ usa lo standard C++20 di serie.

Di seguito trovi l’installazione su tutti e tre i sistemi, i comandi per compilare e la configurazione di Visual Studio Code.

Windows: MSYS2 e MinGW-w64 #

MinGW-w64 è la versione di GCC che produce eseguibili nativi per Windows. MSYS2 è l’ambiente che la distribuisce e la mantiene aggiornata.

  1. Scarica il programma di installazione dal sito ufficiale di MSYS2 e installalo lasciando il percorso predefinito C:\msys64.

  2. Al termine si apre un terminale MSYS2. Aggiorna i pacchetti di base:

    pacman -Syu
    

    Se la finestra si chiude durante l’aggiornamento non preoccuparti: riaprila dal menu Start (MSYS2 UCRT64) e ripeti il comando finché non c’è più niente da aggiornare.

  3. Installa il gruppo di strumenti di compilazione a 64 bit:

    pacman -S mingw-w64-ucrt-x86_64-toolchain
    

    Quando ti chiede quali pacchetti installare, premi Invio per prenderli tutti, poi conferma con Y. Se ti serve anche il debugger, è già compreso: gdb fa parte del gruppo.

  4. Aggiungi la cartella dei compilatori al PATH di Windows, così li usi da qualsiasi terminale. Cerca Modifica le variabili di ambiente relative al sistema nel menu Start (oppure vai in Impostazioni → Sistema → Informazioni → Impostazioni di sistema avanzate), premi Variabili d’ambiente, seleziona Path fra le variabili dell’utente, poi Modifica → Nuovo e scrivi:

    C:\msys64\ucrt64\bin
    
  5. Conferma con OK su tutte le finestre, apri un nuovo Prompt dei comandi e controlla:

    gcc --version
    g++ --version
    

Finestra Variabili d’ambiente di Windows con la voce Path fra le variabili utente
La voce Path da modificare si trova nel riquadro delle variabili utente

Ci sono anche strade più corte. w64devkit è un archivio unico da scompattare, senza gestore di pacchetti: comodo se lo usi ogni tanto. E se devi solo imparare il C su Windows, anche il Sottosistema Windows per Linux va benissimo: installi Ubuntu con wsl --install e segui la parte Linux qui sotto.

Linux #

Su Debian, Ubuntu e derivate, tutto quello che serve sta in un unico pacchetto:

sudo apt update
sudo apt install build-essential gdb

Dentro ci sono GCC, G++, make e le librerie di sviluppo. Su Fedora:

sudo dnf install gcc gcc-c++ make gdb

Su Arch Linux:

sudo pacman -S base-devel gdb

Verifica con gcc --version. Non serve altro: i percorsi sono già configurati.

macOS #

Su Mac il compilatore di serie è Clang, che arriva con gli strumenti da riga di comando di Xcode. Li installi con questo comando, che apre una finestra di conferma:

xcode-select --install

Da lì in poi i comandi gcc e g++ esistono, ma in realtà lanciano Clang. Per imparare non cambia niente.

Se ti serve proprio GCC, per esempio per un progetto che lo richiede, lo installi con Homebrew:

brew install gcc

I comandi si chiameranno gcc-16 e g++-16, con il numero della versione, così non si scontrano con quelli di sistema.

Compilare dal terminale #

I comandi sono gli stessi ovunque, cambia solo il nome del file prodotto.

Compilare un singolo file C:

gcc programma.c -o programma

Compilare C++, chiedendo uno standard recente e tutti gli avvisi:

g++ -std=c++20 -Wall -Wextra programma.cpp -o programma

Eseguire il risultato:

./programma

Su Windows, dal Prompt dei comandi, l’eseguibile si chiama programma.exe e si lancia scrivendo programma.

Terminale che compila un file C++ con g++ e ne esegue subito dopo il risultato
Compilazione senza errori: nessun messaggio, e il programma parte

Le opzioni da conoscere fin dall’inizio:

OpzioneCosa fa
-Wall -WextraMostra gli avvisi: intercettano errori che il compilatore accetterebbe in silenzio
-gInclude le informazioni di debug, necessarie per usare il debugger
-O2Ottimizza il codice; da usare per la versione finale, non mentre si sviluppa
-std=c++20Fissa lo standard del linguaggio, evitando sorprese fra computer diversi
Oltre tre file, lascia perdere la compilazione a mano. Scrivi un Makefile oppure usa CMake. Ricompilare tutto a ogni modifica fa perdere tempo, e prima o poi dimentichi un file e passi mezz’ora su un errore che non c’è.

Configurare Visual Studio Code #

Visual Studio Code non ha un compilatore suo: usa quello che hai installato. Bastano due passaggi.

  1. Installa l’estensione C/C++ di Microsoft dal pannello delle estensioni. In alternativa c’è clangd, più rapido nel completamento e negli avvisi.

  2. Apri la cartella del progetto e crea un file sorgente. Premi F5: alla prima esecuzione l’editor chiede quale compilatore usare e genera da solo i file tasks.json e launch.json nella sottocartella .vscode.

Se il compilatore non compare nell’elenco, su Windows il colpevole è di solito il PATH. Controlla che gcc --version funzioni in un terminale nuovo, poi chiudi e riapri del tutto l’editor: legge le variabili d’ambiente solo all’avvio.

Visual Studio Code che chiede quale compilatore usare al primo avvio del debug
Alla prima esecuzione l’editor elenca i compilatori che ha trovato nel sistema

Per compilare senza il debugger, il terminale integrato (Ctrl + ò) accetta gli stessi comandi visti sopra.

Errori frequenti #

gcc non è riconosciuto come comando su Windows: la cartella bin non è nella variabile PATH, oppure il terminale era già aperto quando l’hai aggiunta.

fatal error: iostream: No such file or directory: stai compilando un file C++ con gcc invece che con g++.

Hai due GCC diversi: se sul computer c’è ancora il vecchio C:\MinGW\bin nel PATH, togli quella riga, altrimenti Windows può trovare prima la versione vecchia. where gcc ti dice quale viene usata.

undefined reference to ...: la compilazione è andata a buon fine ma manca il collegamento a una libreria o a un altro file sorgente. Quando i file sono più di uno vanno indicati tutti, oppure si usa un sistema di compilazione.

L’eseguibile non parte su un altro computer Windows: mancano le librerie di runtime. Si risolve compilando con -static, che le include nell’eseguibile.

Domande frequenti #

MinGW e MSYS2 sono la stessa cosa? #

No. MinGW-w64 è l’insieme di strumenti che permette a GCC di produrre programmi per Windows; MSYS2 è l’ambiente che li distribuisce, li aggiorna e fornisce un terminale in stile Unix. Oggi si installa MSYS2 proprio per ottenere MinGW-w64 in una versione aggiornata.

GCC o Clang: quale scegliere? #

Per imparare vanno bene tutti e due. Clang è quello di serie su macOS e ha messaggi di errore più chiari, cosa che all’inizio aiuta parecchio. GCC è lo standard su Linux e lo trovi più spesso nei progetti esistenti. Molti sviluppatori li usano entrambi: compilare con due compilatori diversi fa venire fuori errori che uno solo lascerebbe passare.

Posso ancora usare il vecchio MinGW di SourceForge? #

Funziona, ma non viene più aggiornato da anni, crea solo programmi a 32 bit e resta indietro sugli standard recenti del C++. Se lo hai già installato, disinstallalo, togli C:\MinGW\bin dal PATH e passa a MSYS2.

Posso compilare programmi Windows da Linux? #

Sì, installando la versione incrociata di MinGW-w64, disponibile come pacchetto nelle principali distribuzioni. Si compila con x86_64-w64-mingw32-gcc e si ottiene un .exe funzionante, utile per distribuire un programma senza avere un computer Windows.

Serve Visual Studio al posto di Visual Studio Code? #

Sono due cose diverse. Visual Studio è un ambiente di sviluppo completo con il suo compilatore Microsoft (MSVC), Visual Studio Code è un editor che usa il compilatore che gli dai. Per imparare C e C++ l’editor con GCC basta ed è molto più leggero.

Come si installa un debugger? #

Su Linux e con MSYS2 si installa gdb insieme al compilatore, come mostrato sopra. Su macOS si usa lldb, già incluso negli strumenti di Xcode. In entrambi i casi Visual Studio Code lo riconosce automaticamente quando genera la configurazione di avvio.

Da leggere anche