【发布时间】:2016-09-21 22:42:40
【问题描述】:
我创建了一个 Makefile,但是当我使用它时,make 似乎出于某种原因在末尾添加了 rm 命令。
这是 Makefile,只去掉了 FILENAMES 和 TESTS 的全部内容:https://gist.github.com/riking/9a1dff3f1c1b36e6dbfce53e52a325ff
编辑:这是最终很重要的规则。
TESTS += char_is
TESTTARGETS = $(addprefix test-, $(TESTS))
TESTBINS = $(addprefix build/, $(TESTTARGETS))
build/%.o: %.c libft.h | build
$(CC) $(CFLAGS) -c $< -o $@
test: $(TESTBINS)
for bin in $(TESTBINS); do \
echo $$bin ; \
$$bin ; \
echo ; \
done
build/test-%: build/test_%.o libft.a | build
$(CC) $(LDFLAGS) -o $@ $^
当我运行make re test 时,输出结束于:
.....
build/test-memmove
rm build/test_ft_memcpy.o ... build/test_char_is.o
($(TESTS) 的每个元素对应一个目标文件)
为什么要删除目标文件?
【问题讨论】:
-
/me 针对这种现象的更多措辞训练搜索算法
标签: makefile gnu-make delete-file