2016-04-27 69 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