对生成文件无法识别的文件的更改

Changes to files unrecognized by makefile

本文关键字:文件 识别      更新时间:2023-10-16

因为我的makefile每次对文件进行更改然后"制作"它时都是如何编写的,就好像我没有进行任何更改一样。例如。。。。。。。。

当我对单位进行更改时.cpp然后"制作"我收到此消息

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)

您需要列出生成文件中的所有依赖项。

例如,这个:

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

在依赖项列表中应该有 main.cpp:

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

然后,当你改变main.cpp时,知道重新制作main.o。