Code Blocks

Preparare Il Compilatore E Gli Strumenti

Preparare il compilatore e gli strumenti — Guida approfondita a Code::Blocks.

Prima del primo programma dobbiamo sapere quale toolchain Code::Blocks richiama. L’installazione del pacchetto con MinGW può predisporre gli strumenti su Windows; su Linux e macOS gli strumenti vengono spesso preparati separatamente. Questa pagina chiarisce anche il ruolo dei plugin.

Compilatore, linker, librerie e debugger

Il compilatore analizza un sorgente e produce codice oggetto. Il linker riunisce gli oggetti e risolve i riferimenti alle librerie per produrre un eseguibile. La libreria standard fornisce funzioni come quelle di input e output. Il debugger osserva l’esecuzione, utilizzando informazioni compatibili con il programma costruito.

Passaggio da sorgenti a oggetti, eseguibile e processo
Compilare e avviare sono operazioni distinte, anche quando un comando dell’IDE le coordina.

Schema esplicativo originale creato per il capitolo.

Una toolchain è l’insieme coerente degli strumenti necessari al percorso scelto. Mescolare eseguibili o librerie di architetture differenti può provocare errori difficili da attribuire al codice. Nei primi esempi mantieni una configurazione semplice e riconoscibile.

Un compilatore C++ comprende regole diverse dal compilatore C. Con GCC il comando gcc coordina comunemente i programmi C, mentre g++ coordina quelli C++ e il relativo collegamento. Con Clang i riferimenti sono normalmente clang e clang++.

Torna all’indice della pagina

Plugin: che cosa aggiungono e che cosa non sostituiscono

Code::Blocks usa plugin per varie funzioni dell’ambiente, comprese integrazioni e strumenti di editing. Un plugin può fornire interfaccia, completamento o comandi; non rende presente un compilatore che manca dal disco.

Per gli esempi console C e C++ non occorre cercare pacchetti aggiuntivi soltanto perché esiste un menu dei plugin. Occorrono le funzioni di base dell’IDE e una toolchain configurata. Framework grafici, librerie e strumenti di altri linguaggi sono requisiti di progetti differenti.

Il completamento dell’editor e la build possono anche utilizzare informazioni o servizi diversi. Una segnalazione dell’editor non coincide sempre con la diagnosi del compilatore effettivamente selezionato. In caso di discrepanza leggi il comando e il log della build.

ComponenteDove agisceControllo utile
Plugin dell’IDEFunzioni di Code::BlocksPresenza e stato della funzione nell’IDE
Compilatore C/C++Sorgenti e opzioni di buildPercorso ed eseguibili della toolchain
Linker e librerieCostruzione dell’eseguibileMessaggi di collegamento e configurazione del progetto
DebuggerProcesso in esecuzioneConfigurazione, compatibilità e informazioni di debug

Torna all’indice della pagina

Verificare quali strumenti sono disponibili

Per leggere la versione di uno strumento si può usare il terminale del sistema. Il terminale va aperto come applicazione separata: Build log non accetta questi comandi. L’IDE può usare un percorso assoluto anche quando la shell non trova il comando nel PATH.

Windows

Apri Start, cerca PowerShell e avvialo. Fai clic dopo il prompt, scrivi e premi Invio:

Get-Command gcc -ErrorAction SilentlyContinue
Get-Command g++ -ErrorAction SilentlyContinue

Se non compare un percorso, la shell non trova i programmi nel PATH. Il compilatore incluso potrebbe comunque essere utilizzabile dall’IDE. Per un percorso reale con spazi, PowerShell richiede il richiamo con &:

& "C:\percorso-reale\MinGW\bin\gcc.exe" --version

C:\percorso-reale è un segnaposto: sostituiscilo con la directory effettiva. Non modificare il PATH soltanto per far coincidere una guida con il tuo computer.

Linux

Apri Terminale dal menu delle applicazioni e digita una riga alla volta, premendo Invio:

command -v gcc
gcc --version
command -v g++
g++ --version
gdb --version

Un comando assente richiede di controllare i pacchetti installati. La lettura della versione non compila un progetto e non modifica i sorgenti.

macOS

Apri Terminale da Applicazioni → Utility, poi digita:

xcrun --find clang
clang --version
clang++ --version

Questi controlli riguardano gli strumenti Apple. La presenza di Clang non prova la disponibilità del debugger configurato in Code::Blocks.

Torna all’indice della pagina

Configurare Settings → Compiler

  1. Apri Code::Blocks.
  2. Scegli Settings → Compiler.
  3. Leggi il compilatore selezionato nella finestra di configurazione.
  4. Scegli una configurazione coerente con gli strumenti installati, per esempio GNU GCC Compiler per la toolchain GCC.
  5. Apri la scheda Toolchain executables.
  6. Controlla la directory di installazione del compilatore e i nomi degli eseguibili.
  7. Se utilizzi il rilevamento automatico, verifica il percorso trovato prima di confermare.
  8. Salva le impostazioni e, quando avrai creato il progetto, controlla che il progetto selezioni la stessa toolchain.
Elementi da controllare nella configurazione del compilatore
Schema della configurazione: nome della toolchain, directory, eseguibili e selezione nel progetto devono essere coerenti.

Schema esplicativo originale creato per il capitolo.

La directory di installazione è normalmente la radice della toolchain, mentre i programmi si trovano in una sua sottocartella come bin. Segui la struttura richiesta dalla configurazione scelta. Non inserire il percorso dell’IDE al posto del compilatore se sono cartelle distinte.

Nella configurazione GCC i campi per C, C++ e collegamento devono richiamare i programmi corretti della stessa toolchain. I nomi possono avere prefissi: non imporre gcc.exe se la distribuzione installata utilizza un eseguibile con un nome differente.

Torna all’indice della pagina

I percorsi sui tre sistemi

Windows

Il compilatore incluso nel pacchetto mingw può trovarsi sotto la cartella di installazione di Code::Blocks. Verifica che la directory individuata contenga la sottocartella dei programmi e gli eseguibili necessari. Un percorso copiato da un altro computer potrebbe riferirsi a una cartella diversa o a una vecchia installazione.

Linux

I pacchetti di sistema collocano comunemente gli strumenti in directory del sistema come /usr/bin. Usa la configurazione GCC compatibile con la distribuzione e confrontala con i percorsi letti nel terminale. Non utilizzare un percorso MinGW Windows all’interno di un progetto Linux.

macOS

Se la build dell’IDE funziona, seleziona una configurazione Clang coerente con gli strumenti disponibili e con i percorsi ottenuti da xcrun. Non configurare nomi di eseguibili Windows. Eventuali problemi del pacchetto Mac vanno distinti da quelli del sorgente; il debug richiede ulteriori verifiche sulla piattaforma.

Torna all’indice della pagina

Impostazioni globali e impostazioni del progetto

La configurazione globale fornisce riferimenti disponibili all’IDE. Il progetto può selezionare il compilatore e aggiungere opzioni, directory e librerie. Un target può a sua volta modificare alcune scelte. Quando compare un’opzione inattesa, controlla il livello in cui è definita.

Per i primi programmi mantieni il compilatore del progetto coerente con quello appena configurato. Non aggiungere directory di librerie esterne se usi soltanto la libreria standard. Non copiare opzioni pensate per una piattaforma o un compilatore diverso.

Lo standard linguistico è un’altra impostazione: per esempio C17 o C++17. Un compilatore può supportare più standard e adottare un valore predefinito. Gli esempi di questo capitolo usano costrutti semplici; per un progetto con requisiti specifici seleziona lo standard consapevolmente nelle opzioni del progetto.

Torna all’indice della pagina

La conferma pratica della configurazione

La finestra Compiler permette di controllare riferimenti, ma la prova effettiva richiede costruire un progetto. Nelle prossime pagine creerai un Console application e leggerai il log della build. Il percorso deve arrivare dalla compilazione al collegamento e produrre l’eseguibile.

Se la build dice che il compilatore non esiste, torna ai percorsi. Se il compilatore legge il file ma segnala un errore di sintassi, il problema è in una fase diversa. Se manca una libreria nel collegamento, non è sufficiente cambiare il colore dell’editor o riattivare il completamento.

Prima del debug verifica almeno una build e un avvio normali. È più semplice diagnosticare un componente alla volta che installare molti plugin mentre non è ancora chiaro quale strumento non funziona.

Torna all’indice della pagina