Tutti i file .cpp dipendono da due file .h?
Domanda
In un makefile, ho la seguente riga:
helper.cpp: dtds.h
Ciò garantisce che helper.cpp venga ricostruito ogni volta che dtds.h viene modificato. Tuttavia, voglio che TUTTI i file nel progetto vengano ricostruiti se uno degli altri due file di intestazione cambia, in questo modo:
*.cpp: h1.h h2.h
Ovviamente non funzionerà, ma non conosco il modo giusto per fare in modo che nmake faccia quello che voglio. Qualcuno può aiutare? Non voglio specificare manualmente che ogni singolo file dipende da h1.h e h2.h.
Grazie. (Sto usando nmake incluso in Visual Studio 2005.)
Soluzione 2
Grazie per l'aiuto, Christoph. Ho provato:
.cpp.obj: h1.h h2.h
E ho ricevuto l'utile messaggio di errore:
makefile(58) : fatal error U1086: inference rule cannot have dependents
Ho finito per risolverlo facendo un elenco dei file che volevo compilare e quindi aggiungendo la dipendenza all'intero elenco.
files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h
Altri suggerimenti
Prova
%.cpp : h1.h h2.h
Funziona con GNU make - non ho idea se nmake sia compatibile ...
Modifica: E a proposito: non dovrebbe essere
helper.o : dtds.h
%.o : h1.h h2.h
Dopo tutto, non vuoi rifare il file .cpp
(come si crea un file sorgente?), ma ricompilare ...
Modifica2: Controlla Riferimento NMAKE . Secondo questo , qualcosa come
.cpp.obj: h1.h h2.h
potrebbe funzionare ...