makefile – 永远重建

前端之家收集整理的这篇文章主要介绍了makefile – 永远重建前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的Makefile是:
OBJS = b.o c.o a.o
FLAGS = -Wall -Werror
CC = gcc

test: $(OBJS)
    $(CC) $(FLAGS) $(OBJS) -o test
b.o: b.c b.h
    $(CC) $(FLAGS) -c b.c
a.o: a.c b.h c.h
    $(CC) $(FLAGS) -c a.c
c.o: c.c c.h
    $(CC) $(FLAGS) -c c.c
clean:
    rm a
    rm *.o
all: test

如果我再做,然后再做,它总是重建’测试’.为什么这样做?

即使我做:make a.o它重建…如果有帮助,我在linux上.

在Windows中,如果我用’-o test.exe”’test.exe’和’-o test’更改’test’,它可以正常工作.
所以我猜,由于某些原因’make’在我的linux不能检查我的目录中的文件的日期戳.

我修好了它!
.c是在Windows中创建的.我在vi中打开了所有的.c和.h,没有任何东西保存更改,并且都工作.我认为这个事情是固定的.

解决方法

你的第一条规则是:
test: $(OBJS)

这意味着如果一个名为“test”的文件不存在,则该规则应该运行并创建它.由于’test’从不存在(该规则实际上并不创建一个名为’test’的文件),所以它每次运行.您应该将“测试”更改为“a”,该规则的实际输出

为了将来参考,如果一个规则实际上并没有创建左侧的东西,那么您应该使用以下命令:

.PHONY: test

猜你在找的C&C++相关文章