2016-04-27 1 views
1

ich Verwalten von Projekten mit GNU lese Make und in Kapitel 2, schreibt der Autor die folgende Art und Weise automatische Abhängigkeit GenerationUnterschied zwischen den folgenden zwei Möglichkeiten, automatische Abhängigkeit Generation zu tun

depend: count_words.c lexer.c counter.c 
     $(CC) -M $(CPPFLAGS) $^ > [email protected] 

include depend 

jedoch zu tun, ich normalerweise tun

Ich bin nicht sicher welcher Weg ist besser oder sie dienen äquivalenten Zweck und können synonym verwendet werden?

Vielen Dank!

Antwort

2

Ich kann mir keinen Unterschied zwischen den beiden vorstellen, obwohl ich denke, das erste bedeutet, dass Sie ein Werkzeug weniger für Ihren Build benötigen, also ist es marginal besser.

Eine noch bessere Methode ist, -MMD -MP zu Ihren Präprozessor Flags beim Kompilieren hinzufügen, die die Abhängigkeitsdateien als Nebeneffekt der Kompilierung generiert.

SRCS := count_words.c lexer.c counter.c 
OBJS := $(SRC:.c=.o) 
DEPS := $(SRC:.c=.d) 

CPPFLAGS := -MMD -MP 

$(OBJS): 

-include $(DEPS) 
+0

Dies ist die richtige Antwort. Sie erhalten die glückliche Situation von Abhängigkeiten kostenlos, und sie sind nie veraltet. – bobbogo

Verwandte Themen