Linux Makefile:需要执行存储在列表中的命令
我试图执行以下代码Linux Makefile:需要执行存储在列表中的命令,linux,makefile,gnu-make,Linux,Makefile,Gnu Make,我试图执行以下代码 LIST = 0 1 3 4 5 targets = $(addprefix rambo, $(LIST)) all: $(targets) $(targets): rambo%: rambo%.sh @echo "" > tests/runners/$< 我不确定代码出了什么问题。基本上,我试图通过执行makefile动态创建一个文件 提前感谢。该错误表示当前目录中没有rambo0.sh文件 静态模式规则的语
LIST = 0 1 3 4 5
targets = $(addprefix rambo, $(LIST))
all: $(targets)
$(targets): rambo%: rambo%.sh
@echo "" > tests/runners/$<
我不确定代码出了什么问题。基本上,我试图通过执行makefile动态创建一个文件
提前感谢。该错误表示当前目录中没有
rambo0.sh
文件
静态模式规则的语法为
其中targets
是字面目标名称,以及
[e] 根据目标模式匹配每个目标以提取零件
目标名称的名称,称为干。这根茎被替换成了一根
每个prereq模式用于生成先决条件名称(一个来自
每个预请求模式)
因为这似乎是你试图用这条规则创造的,我相信你想要:
targets = $(addsuffix .sh,$(addprefix rambo,$(LIST)))
# Alternatively
# targets = $(patsubst %,rambo%.sh,$(LIST))
$(targets): rambo%.sh :
可能
$(targets): rambo%.sh : rambo%
如果rambo%
是一个已经存在的文件或目录,并且是您尝试创建的shell脚本文件的先决条件
$(targets): rambo%.sh : rambo%