具有多个 % 的静态模式规则

Static pattern rules with multiple %

假设我有一个代码根据单个输入变量生成输出,我想 运行 用于一系列输入值。按照建议 here,我可以使用如下的 makefile 来完成此操作:

out1 out2 out3: out%: a.out
    ./a.out $* > $@

这可以推广到多个参数吗? IE。像

out1_1 out1_2 out2_1 out2_2: out%_%: a.out
    ./a.out $*{1} $*{2} > $@

$*{i} 应该是指第 i% 匹配的内容。

不,make 仅支持 target/prerequisite 模式中的单个 %

要执行您想要的操作,您需要阻止整个 #_# 位,然后 munge/parse shell.