I due moduli possono essere compilati indipendentemente (l’opzione -c del comando gcc indica al compilatore di non eseguire il linker, così il risultato sarà il codice oggetto e non l’eseguibile)
gcc -c utile.c
gcc -c vettore.c
gcc -c ordina_array.c
Possibile anche compilarli insieme
gcc -c utile.c vettore.c ordina_array.c
In entrambi i casi si ottengono tre file con estensione .o
Per collegare (link) i tre moduli e produrre l’eseguibile
gcc utile.o vettore.o ordina_array.o -o ordina_array.exe
Possibile compilazione e collegamento in un solo passo
gcc utile.c vettore.c ordina_array.c -o ordina_array.exe
Tutti gli ambienti di programmazione consentono di costruire un progetto
Il comando make: compilazione e collegamento dei vari moduli che compongono il progetto
L’ordine delle specifiche non è importante, ma è buona norma inserire come prima specifica quella per la costruzione del programma eseguibile
In questo caso per lanciare il processo basta digitare il comando make
ordina_array.exe: utile.o vettore.o ordina_array.o
gcc utile.o vettore.o ordina_array.o -o ordina_array.exe
utile.o: utile.c
gcc -c utile.c
vettore.o: vettore.c utile.h
gcc -c vettore.c
ordina_array.o: vettore.h ordina_array.c
gcc -c ordina_array.c
Nell’esempio, come effetto del comando make: bisogna produrre ordina_array.exe, ma occorrono utile.o vettore.o ordina_array.o; se i due file non esistono, si creano le specifiche per produrli, e così via
Ordine di esecuzione:
gcc -c utile.c
gcc -c vettore.c
gcc -c ordina_array.c
gcc utile.o vettore.o ordina_array.o -o ordina_array.exe