Изменения в файлах, не распознанных make-файлом - PullRequest
0 голосов
/ 31 мая 2018

Из-за того, как мой make-файл записывается каждый раз, когда я делаю изменение в файле, а затем «делаю» его, как будто я не вносил никаких изменений.Например ........

Когда я делаю изменение в Unit.cpp, тогда 'make' я получаю это сообщение

make: Ничего не нужно делать для `all '.

В настоящее время я должен сделать 'make clean', а затем 'make', чтобы изменения были распознаны.Я знаю, что это, вероятно, идиотский способ сделать что-то, и мне интересно, как я могу изменить свой файл make, чтобы мне не нужно было перекомпилировать все файлы каждый раз, когда я вносил изменения.

#makefile
# \ for line break
# this is variable for which compiler to use
CC = g++
CFLAGS = -c -Wall 
OBJFILES = main.o UnitList.o Unit.o  Write.o
# this is the name of target program
TARGET = run

all: $(TARGET) 

$(TARGET): $(OBJFILES)
    $(CC) $(OBJFILES) -o $(TARGET)

main.o:
    $(CC) $(CFLAGS) main.cpp

UnitList.o: 
    $(CC) $(CFLAGS) UnitList.cpp 

Unit.o:
    $(CC) $(CFLAGS) Unit.cpp

Write.o:
    $(CC) $(CFLAGS) Write.cpp

clean:
    rm -f $(OBJFILES) $(TARGET)

1 Ответ

0 голосов
/ 31 мая 2018

Вам нужно перечислить все зависимости в вашем make-файле.

Например, это:

main.o:
    $(CC) $(CFLAGS) main.cpp

должно иметь main.cpp в списке зависимостей:

main.o: main.cpp
    $(CC) $(CFLAGS) main.cpp

Затем, когда вы меняете main.cpp, make знает, чтобы заново сделать main.o.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...