生成文件事务中的规则顺序



我的makefile有两行:

Rule_1

File.o : File.cpp
    g++ -c File.cpp -o File.o 

Rule_2

File   : File.o
    g++    File.o   -o File 

我希望File.cpp的任何变化都会导致File.oFile的再生。这是通过以下方式完成的:

Makfile

Rule_2
Rule_1

但是以下内容不起作用,只能再生File.o

Rule_1
Rule_2

为什么?我注意到,我没有在我的制作文件中使用任何all:。有了all: File上述两种方法都有效。

我假设你的制作工具是GNU Make。

除非在命令行上指定目标,例如:

make File

默认情况下,make将尝试将第一个目标设为在生成文件中,在您的问题案例中是File.o.了解如何使进程成为生成文件

添加时:

all: File

在顶部,all是第一个目标,这取决于File ,这反过来又取决于File.o.

我建议你用:

.PHONY: all
all: File

查看虚假目标

最新更新