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.)

È stato utile?

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 ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top