【发布时间】:2021-05-03 07:51:13
【问题描述】:
我有一个生成文件,假设为目录中的每个 file.csv 重复执行一次 c 代码 (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 文件;我认为我以错误的方式使用 $@,但我不明白为什么以及如何解决这个问题,知道吗?
【问题讨论】:
标签: c shell makefile target automatic-variable