GNU Make for循环有两个变量

Mat*_*gan 9 gnu makefile

我想写下这些内容:

$(foreach (var1, var2), ($(LIST1), $(LIST2)), cp $(var1) $(var2);)
Run Code Online (Sandbox Code Playgroud)

我如何在GNU makefile中执行此操作?

Mad*_*ist 10

Beta建议使用join是正确的,但问题是,以构造包含空格的命令行的方式使用它并不容易,例如你最初想要的那个:

$(foreach (var1, var2), ($(LIST1), $(LIST2)), cp $(var1) $(var2);)
Run Code Online (Sandbox Code Playgroud)

因为join将单词连接在一起:它最初用于构造文件名.但是你可以玩耍; 这是一个使用连接的方法的示例,它为您提供所需的输出:

$(subst ^, ,$(join $(addprefix cp^,$(LIST1)),$(patsubst %,^%;,$(LIST2))))
Run Code Online (Sandbox Code Playgroud)

如果您认为您的列表可能包含^字符,请选择其他内容.如果您需要解压缩/解释,请告诉我.