Il cc di GNU (gcc) è la suite di compilazione del progetto GNU. E' usato per compilare programmi scritti in C, C++, Objective C.
Il compilatore gcc è anche in grado di compilare programmi scritti in fortran.
Il gcc fornisce al programmatore un controllo esteso del processo di compilazione.
Il processo di compilazione può comprendere fino a quattro stadi distinti:
- Fase di preprocessing
- Compilazione vera e propria
- Assemblaggio
- Linking
E' possibile interrompere il processo di compilazione in uno qualsiasi di questi stadi per esaminare il risultato della compilazione.
Con gcc è anche possibile controllare la quantità e il tipo di informazioni di debugging cosi da includerle nel file binario prodotto.
Come la maggior parte dei compilatori consente di eseguire l'ottimizzazione del codice.
gcc è anche un
cross compilatore, per cui è possibile sviluppare codice utilizzando un particolare processore e farlo poi girare su un altro.
Prima di iniziare con il primo esempio bisogna stabilire con quali programmi scrivere e compilare il programma.
Premetto che avete molte possibilità, potete ad esempio usare il potente editor emacs (trovate un
tutorial in questo sito che vi spiega come muovervi nell'ambiente emacs, come entrare nella modalità C e come compilare un programma C), in alternativa (ma ce ne sono ancora altre) potete scrivere con kwrite e poi compilare dalla shell. Lascio a voi la scelta.
Vediamo subito un esempio per cominciare a familiarizzare con gcc.
/*
hello.c
Primo programma C - Questo programma scrive sullo stdout
la stringa "Hello World"
*/
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
}
Commenti
Tutto ciò che compare tra
/*
e
*/
viene ignorato in fase di compilazione; quindi, si adoperano i commenti per rendere più comprensibile il codice a chi si trova a leggerlo. E' sempre una buona abitudine commentare i propri programmi.
La direttiva include
La direttiva :
#include <stdio.h>
indica al preprocessore l'utilizzo di funzioni il cui prototipo è definito nell'opportuno "include file".
stdio.h contiene infatti la definizione della funzione printf() , utilizzata nel sorgente.
La libreria stdio.h contiene tutte le funzioni di base per l'I/O del C standard.
Main
Tutti i programmi devono contenere la funzione
main():
int main(void)
{
/* codice del programma */
}
printf
printf("Hello World\n");
Questa funzione stampa sullo standard output(stdout) tutto ciò che è racchiuso tra le virgolette.
E' bene ricordare che ogni programma C ha associati tre file aperti:
- stdin lo standard input
- stdout lo standard output
- stderr lo standard error
sui quali il programma può leggere e scrivere i messaggi.
E' il classico dei programmi, se non avete capito fino in fondo tutte le istruzioni non vi preoccupate, l'obiettivo di questo tutorial era farvi scrivere e compilare ed eseguire il primo programma.
Il programma l'abbiamo scritto, vediamo ora come compilarlo ed eseguirlo.
Compiliamo
Dal prompt:
$ gcc hello.c -o hello
Questo comando dice a gcc di compilare ed eseguire il linking del file sorgente hello.c, creando il file eseguibile specificato usando l'opzione -o hello.
Esecuzione del programma appena creato
Dal prompt:
$ ./hello
Hello World
Abbiamo scritto e compilato il nostro primo programma in C!