Alle .CPP -Dateien hängen von zwei .h -Dateien ab?
Frage
In einem Makefile habe ich die folgende Zeile:
helper.cpp: dtds.h
Dies stellt sicher, dass Helper.cpp wieder aufgebaut wird, wenn dtds.h geändert wird. Ich möchte jedoch, dass alle Dateien des Projekts umgebaut werden, wenn sich eines der zwei anderen Header -Dateien ändern, wie folgt:
*.cpp: h1.h h2.h
Natürlich wird das nicht funktionieren, aber ich weiß nicht, wie es richtig ist, Nmake dazu zu bringen, das zu tun, was ich will. Kann jemand helfen? Ich möchte nicht manuell angeben müssen, dass jede einzelne Datei von H1.h und H2.H.
Vielen Dank. (Ich verwende NMake, die in Visual Studio 2005 enthalten sind.)
Lösung 2
Danke für deine Hilfe, Christoph. Ich habe es versucht:
.cpp.obj: h1.h h2.h
Und erhielt die hilfreiche Fehlermeldung:
makefile(58) : fatal error U1086: inference rule cannot have dependents
Am Ende habe ich es gelöst, indem ich eine Liste der Dateien erstellte, die ich kompilieren wollte, und dann die Abhängigkeit zur gesamten Liste hinzugefügt hat.
files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h
Andere Tipps
Versuchen
%.cpp : h1.h h2.h
Das funktioniert in GNU Make - keine Ahnung, ob nMake kompatibel ist ...
Bearbeiten: Und übrigens: Sollte das nicht sein
helper.o : dtds.h
%.o : h1.h h2.h
Immerhin möchten Sie das nicht neu gestalten .cpp
Datei (wie erstellen Sie eine Quelldatei?), Aber neu kompilieren ...
Edit2: Überprüf den Nmake Referenz. Entsprechend Dies, etwas wie
.cpp.obj: h1.h h2.h
könnte funktionieren...