2012-12-10 46 views
0

我知道Make的默认行为是删除中间文件。我还添加了.INTERMEDIATE特殊目标删除所有中间.o文件,但做仍然没有删除它们。不删除中间文件

我已阅读所有其他文章与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

就个人而言,我会使用

.INTERMEDIATE: $(OBJS) 

我不相信你可以在.INTERMEDIATE目标使用%语法和*.o给我的印象太冒险了。但是,由于您已经有了一个方便的目标文件列表,为什么不使用它呢?