我需要表达一个模式规则,其中目标的依赖关系是使用模式在变量名中定义的。我怎么表达这个?
myvar_image1:=a.o b.o c.o d.o
myvar_image2:=f.o g.o h.o i.o j.o
myimage-%: $(myvar_%)
ld -o $@ $(myvar_$*)
有没有办法实现这个目标?
答案 0 :(得分:0)
据我了解,一个解决方案就是:
# For testing:
# touch {a..e}.c
# make all
Sources = a.c b.c c.c d.c e.c
# Now $(Objects) = a.o b.o ...
Objects = $(Sources:.c=.o)
%.o: %.c
@echo "Say hi from $< to $@"
all: $(Objects)
@echo Say hi $^
获得源后,makefile可以创建对象的正确扩展。稍后让make使用模式样式创建每个对象:%.o: %.c