Makefile 使用中的陷阱与优化策略
1. 变量扩展验证与组合检查
当使用 := 定义 CWD 时,可通过 $(warning) 技巧验证 CWD 仅被扩展一次,示例如下:
$ make
makefile:1: Call to shell
Make /somedir/obj/foo.o from /somedir/src/foo.c
Make /somedir/obj/bar.o from /somedir/src/bar.c
Make /somedir/obj/baz.o from /somedir/src/baz.c
/somedir/obj/foo.o /somedir/obj/bar.o /somedir/obj/baz.o /somedir/obj/foo.o
/somedir/obj/bar.o /somedir/obj/baz.o
若要快速判断 makefile 是否使用了 = 和 $(shell) 的高开销组合,可运行以下命令:
grep -n \$\(shell makefile | grep -v :=
此命令会输出 makefile 中包含 $(shell) 但不包含 :=
超级会员免费看
订阅专栏 解锁全文
3

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



