替换模式中的Makefile patsubs多次出现

替换模式中的Makefile patsubs多次出现,makefile,Makefile,我有3个dir,希望将一个可执行文件链接到库 我已经有了目录列表: DIRS=数学图测试 我想得到如下所示的库列表: LIBS=Math/libMath.a图形/libGraph.a测试/libTest.a 如果我使用这个: $(目录:%=%/%.a) 我得到: Math/%.a图形/%.a测试/.a 说: 只有模式和替换中的第一个“%”被这样处理任何后续“%”都将保持不变 这里需要替换两个引用,而不仅仅是第一个引用。您必须使用循环: LIBS := $(foreach D,$(DIRS),$D

我有3个dir,希望将一个可执行文件链接到库

我已经有了目录列表:

DIRS=数学图测试

我想得到如下所示的库列表:

LIBS=Math/libMath.a图形/libGraph.a测试/libTest.a

如果我使用这个:

$(目录:%=%/%.a)

我得到:

Math/%.a图形/%.a测试/.a

说:

只有模式和替换中的第一个“%”被这样处理任何后续“%”都将保持不变


这里需要替换两个引用,而不仅仅是第一个引用。

您必须使用循环:

LIBS := $(foreach D,$(DIRS),$D/lib$D.a)
最终我使用了:

库:=
$(加入$(目录),$(目录:%=/lib%.a))