在make中,如何使用通配符%
来描述目标和先决条件中的多个文件?
%.1: %.md
for f in $?; do ...; done
我认为以上是触发规则为自上次运行以来修改过的任何*.1
创建*.md
文件的方法,但显示了这一点:
make: *** No targets. Stop.
答案 0 :(得分:1)
你的规则是说“如果你需要制作.1,如果你有.md,这是怎么做”,你没有要求make做任何.1。您可能还需要:
SOURCES=$(wildcard *.md)
all: $(SOURCES:%.md=%.1)
%.1: %.md
echo $@
请注意,*
和%
相似(它们代表未指定的字符),但在检查字符串时会出现在不同的上下文中*
以查找现有文件%
- 字符串通常是文件名的一部分,但这不是强制性的,你可以使用它来匹配实用程序的参数)