c++ - 对 makefile 无法识别的文件所做的更改

标签 c++ shell makefile

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

当我对 Unit.cpp 进行更改然后“make”时,我收到此消息

make: 没有什么可以为 `all' 做的。

目前我必须先“清理”然后“制作”才能识别更改。我知道这可能是一种愚蠢的做事方式,我想知道如何修改我的 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)

最佳答案

您需要在 makefile 中列出所有依赖项。

例如,这个:

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

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

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

然后,当您更改 main.cpp 时,make knows 重新制作 main.o。

关于c++ - 对 makefile 无法识别的文件所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50617365/

相关文章:

c++ - 编译错误: fatal error :找不到 'boost/numeric/ublas/matrix.hpp'文件

linux - 在两列中搜索两个不同的字符串

Excel VBA 等待 Shell 完成后再继续脚本

c - 用法 : cc [ options] files. 使用 'cc -flags' 了解详情

c++ - Makefile 在同一目录中找不到文件

android - android中的g++和ubuntu中的g++有什么区别?

c++ - FFMPEG 解码 - 内存泄漏

c++ - 栅栏实际上如何在 C++ 中工作

python - 如何使用任何脚本(python/shell)自动插入和解析xml元素?

c - makefile 相对路径是否与 gcc 相对路径相同?