Home
Accesso / Registrazione
 di 

Programmare in C - Makefiles

Guida C

Per realizzare un makefile si deve creare un file chiamato makefile ed editarlo con dei comandi per arrivare alla costruzione completa di un eseguibile.

Potrebbe essere noioso, ridondante e alquanto sciocco, digitare tutte le volte che si compila un programma o si manda in esecuzione un codice il comando gcc con tutte le librerie di cui un programma necessita. Tale operazione è particolarmente noiosa da ripetere ogni qual volta si debba apportare una qualsiasi modifica al codice. L'utilità make risolve questo tipo di incombenza. Si può utilizzare il seguente makefile per sostituire la compilazione così come descritta nella lezione precedente:

main: main.o util.o
        gcc -o main main.o util.o
main.o: main.c util.h
        gcc -c -g main.c
util.o: util.c util.h
        gcc -c -g util.c

Per realizzare il makefile si deve creare un file chiamato makefile ed editarlo con i comandi di cui sopra per arrivare alla costruzione completa di un eseguibile. Da notare che è necessario precedere tutte le linee gcc con un tab.

Il file makefile di cui sopra contiene due tipi di linee. Le linee che appaiono allineate a sinistra (per effetto della tabulazione) sono chiamate dependency lines, ovvero linee di dipendenza. Le linee precedute da un tab sono linee che contengono comandi eseguibili, che possono quindi contenere qualsiasi comando UNIX valido. Una linea di dipendenza dice che alcuni file sono dipendenti da altri nell'insieme di file che compongono il codice. Per esempio: main.o: main.c util.h equivale a dire che il file main.o è dipendente dai file main.c e util.h. Se uno o entrambi i file cambiano, sarà sufficiente rilanciare il makefile per ricreare main.o

Da notare che l'eseguibile finale che viene prodotto dal makefile è il main. Il risultato finale dovrebbe essere espresso sempre nella prima linea (linea 1) del makefile, in cui si dice anche che il file main è dipendente da main.o e util.o. Se vi sono cambiamenti, rieseguire il makefile per ricreare il file main.

E' possibile mettere linee multiple da eseguire al di sotto di una linea di dipendenza: devono tutte iniziare con un tab. Un programma “grande” può avere diverse librerie e un programma main. Il makefile ricompila automaticamente tutto ciò che serve in seguito a un cambiamento nel codice.

Se non state lavorando su di una macchina UNIX, il vostro compilatore ha sicuramente funzionalità equivalenti alla filosofia del makefile. Leggere pertanto la documentazione del compilatore in uso per imparare ad usarlo correttamente.

Ecco quindi spiegato il motivo per cui abbiamo incluso stdio.h nei programmi precedenti. E' semplicemente la libreria standard che qualcuno ha creato e reso disponibile agli altri programmatori per rendere ad essi la vita più facile.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 2 utenti e 33 visitatori collegati.

Utenti online

Ultimi Commenti