Makefile 表示依赖关系的特定于模式的变量
我需要表达一个模式规则,其中目标的依赖项在模式的变量名中定义。我如何表达这一点Makefile 表示依赖关系的特定于模式的变量,makefile,Makefile,我需要表达一个模式规则,其中目标的依赖项在模式的变量名中定义。我如何表达这一点 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_$*) 有没有办法做到这一点?据我所知,一个解决方案是: # For testing: # touch {a..e}.c # make all Sources = a.c b.c c.c d.c e.c
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_$*)
有没有办法做到这一点?据我所知,一个解决方案是:
# 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 $^
#用于测试:
#触摸{a..e}.c
#全部
来源=a.c b.c.c d.c e.c
#现在$(对象)=a.o b.o。。。
对象=$(源:.c=.o)
%.o:%.c
@echo“从$<向$@问好”
全部:$(对象)
@回音打招呼$^
获得源代码后,makefile可以创建对象的适当扩展名。稍后让make使用模式样式创建每个对象:
%.o:%.c
为什么不能正常地表达依赖关系?即myimage-image\u 1:a.o b.o c.o d.o
等。