Home > C / C++ > Come realizzare un MakeFile

Come realizzare un MakeFile

In generale quando si ha a che fare con progetti software in C o C++ con un gran numero di file, invece di essere costretti a compilare singolarmente e manualmente ogni file, è possibile utilizzare un’ utility chiamata Make.
Di fatto si tratta di un file di testo con una struttura ben definita che serve da input all’ eseguibile make.exe per compilare, linkare e realizzare l’eseguibile finale del progetto. Una peculiarità di questa utility sta nel fatto che va a controllare anche se un file è stato modificato dall’ ultima compilazione effettuata , in tal caso lo ricompila se no lo linka semplicemente. Questo chiaramente comporta una risparmio di tempo non indifferente se il numero complessivo di file del progetto è molto elevato.

C_4
Ma andiamo a osservare la struttura di un MakeFile:

Un MakeFile ha una struttura ben definita del tipo:

target : prerequisiti ...
comandi

dove target è solitamente il nome del file generato da un programma, esempi di target sono i file eseguibili o i file oggetto. Il prerequisito è un file usato come input per creare il target (un target spesso dipende da diversi file). Un comando è una azione da eseguire. Una regola può avere più comandi, ciascuno su una riga diversa.
Un esempio di makefile è il seguente :

test : main.o file.o
cc -o test main.o file.o
main.o : main.c def.h
cc -c main.c
file.o : file.c def.h
cc -c file.c

Si produrrà il file eseguibile test a partire dai file C main.c e file.c e dal file header def.h. Il file target test avrà come prerequisiti i due file main.o e file.o, e il comando, azione da eseguire per ottenere il file target, sarà cc -o test main.o file.o. Analogamente il file target main.o avrà come prerequisiti i due file main.c e def.h. Il comando, azione da eseguire per ottenere il file target, sarà cc -c main.c , eccetera.
Una volta creato il makefile si usa il comando make per compilare il file (o i file) C e produrre l’eseguibile test.exe
E’ importante che il MakeFile sia nella stessa cartella in cui si trovi l’eseguibile make.exe . In caso contrario bisogna inserire anche il path del makefile nella chiamata di make .

Categories: C / C++ Etichette:
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Follow

Get every new post delivered to your Inbox.