我的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.o
和File
的再生。这是通过以下方式完成的:
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
查看虚假目标