不要删除中间文件

时间:2012-12-10 16:17:48

标签: linux gcc makefile

我知道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

谢谢!

1 个答案:

答案 0 :(得分:0)

就个人而言,我会使用

.INTERMEDIATE: $(OBJS)

我不相信你可以在%目标中使用.INTERMEDIATE语法,而*.o对我来说风险太大了。但是,由于您已经有了一个方便的目标文件列表,为什么不直接使用呢?