由于我每次对文件进行更改时都会编写makefile,然后“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)
答案 0 :(得分:1)
您需要列出生成文件中的所有依赖项。
例如,这个:
main.o:
$(CC) $(CFLAGS) main.cpp
应该在依赖项列表中包含main.cpp:
main.o: main.cpp
$(CC) $(CFLAGS) main.cpp
然后,当你改变main.cpp时,make know重新制作main.o。