2016-04-27 71 views
1

我讀與GNU管理項目使和第2章中,作者寫道:以下方法可以自動依存產生差異做自動依存產生

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

include depend 

然而,我通常做

makedepend -I $(CC) -f $(MAKEFILE) count_words.c lexer.c counter.c 

我不確定哪種方式更好,或者他們服務等效的目的,可交替使用?

非常感謝!

回答

2

我不認爲兩者之間有什麼區別的,雖然我想第一意味着你需要爲你構建一個更小工具,所以它的略好。

也就是說,更好的方法是在編譯時將-MMD -MP添加到預處理器標誌中,這會生成依賴文件作爲編譯本身的副作用。

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

CPPFLAGS := -MMD -MP 

$(OBJS): 

-include $(DEPS) 
+0

這是正確的答案。你可以免費獲得依賴項的快樂狀態,並且它們永遠不會過時。 – bobbogo