Makefile入门教程
大家好,我是佐须之男。上一讲视频中我们讲的是"OpenWrt 文件系统目录结构分析",这一讲视频我们讲 Makefile。Makefile是make工具的配置文件,实际上真正干活的是make命令。Makefile的产生主要是为了提高编译、链接的工作效率。Makefile可以根据文件的时间戳来判断是否需要重新编译和链接,大大降低了编译和链接的成本。在大小项目中,节省巨大时间,你自己想想编译一次OpenWrt需要多久时间就知道了。
其实Makefile从原理上理解非常简单,复杂的是Makefile自身的一些特殊宏和命令(比如include)。
$? 当前目标所依赖的文件列表中比当前目标文件还要新的文件
$@ 当前目标我名字
$< 当前依赖文件的名字
$* 不包括后缀名的当前依赖文件的名字
$^ 规则的所有依赖文件列表,使用空格分隔。如果目标是静态库文件名,它所代表的只能是所有库成员(.o文件)名。一个文件可重复的出现在目标的依赖中,变量“$^”只记录它的一次引用情况。就是说变量“$^”会去掉重复的依赖文件。
Makefile的规则其实很简单,简单说来就是目标(target)、依赖(prerequisites)、命令(command)。实际上Makefile并不是仅仅用来实现编译和链接工作,还可以实现很多对时序有要求的脚本工作。