我有一个makefile,它假设为目录中的每个file.csv 重复执行一次ac 代码(BootstrapCL.c)。对于每次执行,它应该输入 c 代码(作为 argv) 2 字符串:当前执行中使用的输入 csv 文件的名称,带扩展名和不带扩展名。这是makefile的内容:
SRCS := $(wildcard *.csv)
BINS := $(SRCS:%.csv=%)
all: ${BINS}
%: BootstrapCL.c
gcc -Wall BootstrapCL.c -lm -o BootstrapCL
./BootstrapCL $@.csv $@
问题是,在执行完所有的 csv 文件组之后(我只想执行 ${BINS} 列表中的目标),它还使用“all”目标运行最后一次执行。当然,我的文件夹中没有任何 all.csv 文件;我想我以错误的方式使用 $@,但我不明白为什么以及如何解决这个问题,知道吗?