在我的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_sound时,将$(OBJ_sound)中的所有目标文件打包到lib_sound.a中< / p>
但是我上面的Makefile片段不起作用($ +始终为空)。有人知道为什么吗?
答案 0 :(得分:2)
一种选择是使用secondary expansion:
.SECONDEXPANSION:
lib_%.a: $$(OBJ_$$*)
$(AR) rcs $@ $+