Makefile 我怎样才能把这两个食谱写在一起呢?
这是我的Makefile的一部分Makefile 我怎样才能把这两个食谱写在一起呢?,makefile,gnu-make,makefile-project,Makefile,Gnu Make,Makefile Project,这是我的Makefile的一部分 bin/shafa: $(OBJDIR)/shafa.o $(CC) -g $^ -o "$@" bin/shafad: $(OBJDIR)/shafad.o $(CC) -g $^ -o "$@" 我想用一个食谱来做这个。我做了这样的事情: bin/shafa%: $(OBJDIR)/shafa%.o $(CC) -g $^ -o "$@" 但我知道它不起作用,因为%与
bin/shafa: $(OBJDIR)/shafa.o
$(CC) -g $^ -o "$@"
bin/shafad: $(OBJDIR)/shafad.o
$(CC) -g $^ -o "$@"
我想用一个食谱来做这个。我做了这样的事情:
bin/shafa%: $(OBJDIR)/shafa%.o
$(CC) -g $^ -o "$@"
但我知道它不起作用,因为%与shafa不匹配,只有shafad,这就是为什么我想要类似于
*
,问题是我不知道如何使用通配符。模式必须至少匹配一个字符,所以shafa%
与shafa
不匹配。但是您可以使用shaf%
来代替,如下所示:
bin/shaf%: $(OBJDIR)/shaf%.o
$(CC) -g $^ -o "$@"
非常感谢你的回答!它确实匹配shafa和shafad,但我一直在寻找只匹配它的东西,因为在这种情况下,它将匹配shafe和shafi,等等。假设我不想要,那么你就不能使用模式规则。如果要匹配一组特定的已知目标,可以使用静态模式规则: