构建与重建:Makefile 优化与依赖管理
1. 修改后的 Makefile
在构建项目时,为了确保当源文件内容发生变化时能重新构建目标文件,我们可以使用一个检查源文件 MD5 校验和的 Makefile。以下是一个完整的示例:
to-md5 = $1 $(addsuffix .md5,$1)
.PHONY: all
all: foo.o
foo.o: $(call to-md5,foo.c foo.h)
%.md5: FORCE
@$(if $(filter-out $(shell cat $@ 2>/dev/null),$(shell md5sum $*)),md5sum $* > $@)
FORCE:
在这个 Makefile 中, foo.o 的先决条件列表从 foo.c foo.h 变为 $(call to-md5,foo.c foo.h) 。 to-md5 函数会给所有参数中的文件名添加 .md5 后缀。展开后, foo.o 的规则变为:
foo.o: foo.c foo.h foo.c.md5 foo.h.md5
这意味着如果 .md5 文件较新,或者 foo.c 或 foo.h
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



