概述
makefile这个编译在c++中很常见,看下操作系统,都是基于makefile编译的。来简单看下,
这个就不看了,每一个模块下都有一个对应的makefile。可见makefile之重要。
简单Makefile
执行下,看看运行结果。如下:
这个执行的是all。
修改下test和all的位置,如下:
执行,再来看看,结果,如下:
再修改下,如下:
执行,看看结果,如下图:
makefile三要素
对于makefile来说,有重要的依赖三要素,依赖,命令,目标。如下图:
makefile:工作原理
编译,去生成目标,检查依赖条件,
更新目标,检查,更新,检查,依赖,然后比目标文件新,更新目标文件,更新目标。
编译程序
想知道执行流程,先加几个打印,然后看看,如下图:
make执行,如下图:
可以看到还有个clean;来看下执行会有什么效果,如下图:
make clean执行后,清理了生成的文件。又回到了最初的状况。再来看看一种情况,直接执行一次make,如下图:
可以看到第二次没有执行生成.o的文件,因为他们已经生成了,那如果修改了foo.c,来看下:
执行make,然后可以看到
图中圈起来的地方执行了。也就是只执行了增量更新。
小结
本篇主要写了makefile编译系统,写了简单的makefile,还有一些makefile的原理,三要素,再加上一些案例,其实还是蛮丰富的。有兴趣,可以看看,也可以学习学习。OK,结束。