我知道Make的默认行为是删除中间文件。我还添加了.INTERMEDIATE
特殊目标来删除所有中间.o
文件,但Make仍未删除它们。
我已经在Stackoverflow上阅读了所有其他类似问题的帖子,按照建议的答案,对我没有任何作用。有人可以看看吗?这是我的作品:
CC = gcc
CFLAGS = -Wall -Werror -Wmissing-prototypes
OBJS = server.o rio.o list.o
LDLIBS = -lpthread
.INTERMEDIATE: %.o
all: syst
sysstatd: $(OBJS)
$(CC) $(CFLAGS) $(OBJS) $(LDLIBS) -o syst -L thread-pool -lthreadpool
server.o: server.h server.c
rio.o: rio.h rio.c
list.o: list.h list.c
clean:
rm -f *~ *.o syst
谢谢!
答案 0 :(得分:0)
就个人而言,我会使用
.INTERMEDIATE: $(OBJS)
我不相信你可以在%
目标中使用.INTERMEDIATE
语法,而*.o
对我来说风险太大了。但是,由于您已经有了一个方便的目标文件列表,为什么不直接使用呢?