Мой 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
, то make
, он всегда перестраивает 'test'.Почему он это делает?
Даже если я это сделаю: make a.o
он перестраивается ... Я в Linux, если это помогает.
В Windows, если я меняю 'test' на 'test.exe 'и' -o test 'от' -o test.exe ', работает нормально.Поэтому я думаю, что по какой-то причине «make» в моем linux не может проверить метки даты моих файлов в каталоге.
Я ИСПРАВЛЕН!.C были созданы в Windows.Я открыл все .c и .h в vi, и ничего не делая, кроме изменений, и все заработало.Я думаю, что дата-метка была исправлена при этом.