make命令如何避免重新编译未更改的源文件?

时间:2018-10-20 09:51:03

标签: c++ linux makefile build compilation

我正在学习如何编写makefile,我想知道它是如何决定是否重新编译对象的,关于此的信息很少,能帮我吗,谢谢

test : main.o
    g++ main.o 
main.o : main.cpp
    g++ -c main.cpp

2 个答案:

答案 0 :(得分:2)

make通过跟踪依赖关系来工作。

在您的情况下,您有test依赖于main.o,因此,如果main.o的修改日期晚于test,则将执行命令。

main.o相同,将在修改main.cpp之后在依赖项main.o中重新生成。

答案 1 :(得分:0)

make查看mtime,即目标和源的修改时间。如果任何源比目标新,它将成为目标。您可以使用-B选项强制make重新制作目标。