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.

In questa pagina
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.
Scarica il programma di installazione dal sito ufficiale di MSYS2 e installalo lasciando il percorso predefinito
C:\msys64.Al termine si apre un terminale MSYS2. Aggiorna i pacchetti di base:
pacman -SyuSe 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.
Installa il gruppo di strumenti di compilazione a 64 bit:
pacman -S mingw-w64-ucrt-x86_64-toolchainQuando ti chiede quali pacchetti installare, premi Invio per prenderli tutti, poi conferma con Y. Se ti serve anche il debugger, è già compreso:
gdbfa parte del gruppo.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
Pathfra le variabili dell’utente, poi Modifica → Nuovo e scrivi:C:\msys64\ucrt64\binConferma con OK su tutte le finestre, apri un nuovo Prompt dei comandi e controlla:
gcc --version g++ --version

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.

Le opzioni da conoscere fin dall’inizio:
| Opzione | Cosa fa |
|---|---|
-Wall -Wextra | Mostra gli avvisi: intercettano errori che il compilatore accetterebbe in silenzio |
-g | Include le informazioni di debug, necessarie per usare il debugger |
-O2 | Ottimizza il codice; da usare per la versione finale, non mentre si sviluppa |
-std=c++20 | Fissa lo standard del linguaggio, evitando sorprese fra computer diversi |
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.
Installa l’estensione C/C++ di Microsoft dal pannello delle estensioni. In alternativa c’è clangd, più rapido nel completamento e negli avvisi.
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.jsonelaunch.jsonnella 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.

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.

