佐须之男的博客

技术需要沉淀,成长需要痛苦,成功需要坚持,敬仰需要奉献

跟着佐大学Lede/OpenWrt开发入门培训班讲义-12 Makefile入门教程

备注:

    此文是佐须之男"跟着佐大学OpenWrt开发"入门培训班教学视频演讲稿提纲,虽是内部资料但再三考虑后对外公布,通过公众的监督来鞭策自己。如对完整内容感兴趣,可以参加"跟着佐大学OpenWrt开发"入门培训班:http://forgotfun.org/2018/04/openwrt-training-2018.html

课程试听地址:

    https://pan.baidu.com/s/13nCmoaXTEfKc9F9-bdtHcA

    

    大家好,我是佐须之男。上一讲视频中我们讲的是"OpenWrt 文件系统目录结构分析",这一讲视频我们讲 Makefile。Makefile是make工具的配置文件,实际上真正干活的是make命令。Makefile的产生主要是为了提高编译、链接的工作效率。Makefile可以根据文件的时间戳来判断是否需要重新编译和链接,大大降低了编译和链接的成本。在大小项目中,节省巨大时间,你自己想想编译一次OpenWrt需要多久时间就知道了。

    其实Makefile从原理上理解非常简单,复杂的是Makefile自身的一些特殊宏和命令(比如include)。 

        $?    当前目标所依赖的文件列表中比当前目标文件还要新的文件
        $@   当前目标我名字
        $<   当前依赖文件的名字
        $*    不包括后缀名的当前依赖文件的名字
        $^   规则的所有依赖文件列表,使用空格分隔。如果目标是静态库文件名,它所代表的只能是所有库成员(.o文件)名。一个文件可重复的出现在目标的依赖中,变量“$^”只记录它的一次引用情况。就是说变量“$^”会去掉重复的依赖文件。

    Makefile的规则其实很简单,简单说来就是目标(target)、依赖(prerequisites)、命令(command)。实际上Makefile并不是仅仅用来实现编译和链接工作,还可以实现很多对时序有要求的脚本工作。

Powered By Z-BlogPHP 1.5 Zero

© 2016 佐须之男版权所有 | 联系方式 forgotfun@qq.com | 业务合作 181-1435-4589 (陆工)