Ich verwende das Flag -MM
in GCC, um Makefile-Abhängigkeiten für Objekte zu generieren. Die Make-Datei sieht kurz wie folgt aus:GCC-Makefile-Abhängigkeitserzeugungspfad
-include autodep
...
$(TARGET): build $(OBJECTS)
$(CC) -shared -o [email protected] $(OBJECTS)
$(CC) -MM $(SOURCES) > autodep
Die Quellen der in Ordner src
befinden. Allerdings wird die autodep
Datei des Objekt Ziele ohne ihren relativen Pfad enthält:
foo.o: src/foo.c src/foo.h
bar.o: src/bar.c src/bar.h src/baz.h
Wie soll ich sie in diesen drehen:
src/foo.o: src/foo.c src/foo.h
src/bar.o: src/bar.c src/bar.h src/baz.h
?
Ich versuchte mit der -MT
Flag, aber es scheint Objekt Ziele insgesamt zu verwerfen.
Danke! Ich benutze die 'foreach'-Schleife, und der Inhalt von 'autodep' ist jetzt korrekt. Aber es scheint nicht zu funktionieren. Mit dem Beispiel aus der Frage, wenn ich 'src/bar.h' ändere und' make' ausführe, bekomme ich 'make: \' src/foo.o 'auf dem neuesten Stand. –
Es wurde gelöst, indem '-include' hinter' all: 'gestellt wurde. –