Why is GNU make adding this 'rm' command at the end?
本问题已经有最佳答案,请猛点这里访问。
我创建了一个Makefile,但是当我使用它时,由于某种原因,make似乎在末尾添加了
这里是Makefile,仅去除了
编辑:这是最终变得很重要的规则。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 $@ $^ |
当我运行
1 2 3 4 | ..... build/test-memmove rm build/test_ft_memcpy.o ... build/test_char_is.o |
(
为什么要删除目标文件?
测试二进制文件的目标文件是中间产品,因为测试二进制文件是使用隐式规则创建的,而不是使用显式规则创建的
由于它们是一系列模式规则的中间产品,因此在构建结束时将其删除。
讨论此问题的"制作"手册页是"内隐规则链"。