Makefile目标依赖项:如何组合变量名

Makefile目标依赖项:如何组合变量名,makefile,gnu-make,Makefile,Gnu Make,在我的Makefile中,我想做这样的事情 OBJ_sound =\ sound/soundaiff.o\ sound/sounddummy.o\ sound/sounddump.o OBJ_video =\ video/render.o\ video/rendercrt.o\ video/renderntsc.o lib_%.a: $(OBJ_%) $(AR) rcs $@ $+ 我想,当制作目标lib_video.a时,$(OBJ

在我的Makefile中,我想做这样的事情

OBJ_sound =\
    sound/soundaiff.o\
    sound/sounddummy.o\
    sound/sounddump.o

OBJ_video =\
    video/render.o\
    video/rendercrt.o\
    video/renderntsc.o

lib_%.a: $(OBJ_%)
    $(AR) rcs $@ $+
我想,当制作目标lib_video.a时,$(OBJ_video)中的所有对象文件都打包到lib_video.a中,当制作lib_声音时,$(OBJ_sound)中的所有对象文件都打包到lib_sound.a中

但是上面我的Makefile代码段不起作用($+总是空的)。有人知道为什么吗?

一个选项是使用:

一个选项是使用:


您的第一个建议无法工作,因为目标特定变量在先决条件列表中不可用。您的第一个建议无法工作,因为目标特定变量在先决条件列表中不可用。
.SECONDEXPANSION:

lib_%.a: $$(OBJ_$$*)
    $(AR) rcs $@ $+