将文件添加到 GNU 依赖项列表?
Posted
技术标签:
【中文标题】将文件添加到 GNU 依赖项列表?【英文标题】:Adding a file to GNU dependency list? 【发布时间】:2015-09-26 04:55:05 【问题描述】:我制作了一个简单的 makefile 来编译 AVR 代码。我有一个规则如下:
%.o: %.c
$(CC) -c -o $@ $<
$(CC) -M $(FLAGS) $*.c > $*.d | sed -e ':?:? avr.rules ?'
我试图让它在 test.d 中,它会说
test.o: test.c test.h avr.rules
我以前使用类似的 sed 命令完成过,但现在似乎无法获得它。有人可以在这里给我指点吗?
【问题讨论】:
【参考方案1】:你可以说
%.o: %.c
$(CC) -c -o $@ $<
$(CC) -M $(FLAGS) $*.c > $*.d
echo '$@: avr.rules' >> $*.d
拥有多个依赖跟踪目标没有问题(因为它们都没有配方)。
如果你坚持用 sed 来做,
$(CC) -M $(FLAGS) $*.c | sed 's/:/: avr.rules/' > $*.d
也可以。
旁注:您可以使用$<
代替$*.c
。
【讨论】:
啊,好吧,我把 sed 放在了错误的位置。另一方面,我希望包含 avr.rules 的原因是因为根据输入标志,$(FLAGS) 会更改值,所以我希望它使用新标志重建对象。然而它似乎并没有这样做以上是关于将文件添加到 GNU 依赖项列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 jquery-slider 添加到 browserify 中的依赖项列表中?
GNU Makefile - 具有一个依赖项的多个目标的模式规则忽略所有目标,但第一个