我正在学习如何编写makefile,我想知道它是如何决定是否重新编译对象的,关于此的信息很少,能帮我吗,谢谢
test : main.o
g++ main.o
main.o : main.cpp
g++ -c main.cpp
答案 0 :(得分:2)
make
通过跟踪依赖关系来工作。
在您的情况下,您有test
依赖于main.o
,因此,如果main.o
的修改日期晚于test
,则将执行命令。
与main.o
相同,将在修改main.cpp
之后在依赖项main.o
中重新生成。
答案 1 :(得分:0)
make
查看mtime
,即目标和源的修改时间。如果任何源比目标新,它将成为目标。您可以使用-B
选项强制make重新制作目标。