makefile的机制,流程分析
calc:add.o sub.o multi.o gcc add.o sub.o multi.o calc.cpp -o calc add.o:add.cpp gcc -c add.cpp -o add.o sub.o:sub.cpp gcc -c sub.cpp -o sub.o multi.o:multi.cpp gcc -c multi.cpp -o multi.o clean: rm -rf *.o calc
按照这个例子分析,我们,make命令执行后会先执行目标后面的依赖,
如果没有依赖就执行后面的命令,比如clean操作
依赖分两种情况,存在或者不存在
我们现在这种情况是不存在的
calc:add.o sub.o multi.o
所以会去执行其他的目标,比如add.o:add.cpp,因为我们的add.cpp是他的依赖,再去找这个依赖看看存不存在,发现当前文件中存在这个依赖,所以执行后面的编译代码。
保证目标是用最新的依赖生成的
如果提示这个就是表示文件已经是最新的了
如果文件代码有修改 重新执行make的时候就会重新编译生成一份新的文件
假设我们现在修改下add.cpp文件
重新make一下
只会执行我们修改的文件的代码指令,
其他文件没有修改过的不会执行编译指令。
第一次全完编译工后面只编译最新的代码(部份编译)