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

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top