我的 Makefile
没有删除中间文件。我已经设置了 .INTERMEDIATE
。这是我的 Makefile:
OBJECTS=prefixer.o stack.o
CFLAGS=-Werror -Wmissing-prototypes -g
LIBS=-lm
CC=gcc
prefixer : $(OBJECTS)
$(CC) -o prefixer $(OBJECTS) $(LIBS)
prefixer.o : stack.h
$(CC) -c prefixer.c -o $@ $(CFLAGS)
stack.o : stack.c stack.h
$(CC) -c stack.c -o $@ $(CFLAGS)
.INTERMEDIATE: %.o
.PHONY: clean
clean :
-rm prefixer *.o
.INTERMEDIATE
有什么问题?
最佳答案
参见 Gnu make special targets对于 .INTERMEDIATE
你可能是说
.SECONDARY: $(OBJECTS)
因为我认为如果您放置 .INTERMEDIATE
,那么对象将始终被删除,而您可能不希望这样。我认为您不能有意义地将 %.o
作为特殊目标的先决条件。
我建议保留目标文件,这样您就不会浪费时间重新编译它们。
运行一次 make -p
会告诉你很多关于 make
知道的规则。
使用 remake -x
(即 remake)非常有用,至少对于调试复杂的 Makefile
-s 是这样。您也可以使用 make -d
,但我觉得它太冗长了。
您可能希望使用比 make
更好的构建器,例如omake .
关于c - Makefile 不删除中间文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11709470/