Makefile的细节


这虽然是个老故事,但是作为传承,作为仍在使用的工具,需要讲。GNU/Linux下开发c 和c++ 应用,Makefile是基础。虽然现在更多的顶层工具被创建出来,例如,CMake,QMake等,但是他们最终的目标产物也是生成Makefile。在未来的代码维护道路上,等待你的可能是Makefile裸体。
我的Makefile的经验,星星点点,零乱不堪。“用到哪里查哪里”,不深入。现在我想全面认识Makefile。coolshell的拥有者[陈皓],早在17年前曾详细的、通俗的、深入的讲解过,今天看来仍然非常受益。我把他整理的内容索引到这里,再次感谢作者[陈皓]的付出。
为了快速理解每章分享的内容,我自行摘了要,非原作者本意。一切为了方便!给自己建个索引。

跟我一起写Makefile(一)


回答了Makefile是什么?举例说名了,就是这个例子,道出了Makefile的主要解决的问题:使用command把依赖项(prerequisites)组织起来生成目标(target)。

target ... : prerequisites ...
            command
            ...
            ...

跟我一起写Makefile(二)


make是如何工作的?
Makefile中怎样使用变量?
Makefile也要有风格。
make的自动推导和隐藏规则你知道吗?
Makefile中的为目标,PHONY可好?

跟我一起写Makefile(三)


make的工作流程,总结好的那种。
Makefile里有什么?
你会引用其他Makefile?
关于Makefile涉及的环境变量你了解多少?如果处理不好会感觉make的行为莫名其妙。

跟我一起写Makefile(四)


会书写合格的规则吗?
规则中的通配符有那些?
文件搜索路径还是咱自己说了算的好。
深入伪目标,.PHONY 更专业。

跟我一起写Makefile(五)


多目标生成也是你说了算。
Makefile也有静态模式。
有一个真正厉害的武器,自动生成依赖项。

跟我一起写Makefile(六)


Makefile中的命令学问大。
命令包。
嵌套执行make。
@echo与echo估计你懂得。
命令出错,一切都会结束?-来拯救。

跟我一起写Makefile(七)


变量,变量,变量,不算复杂。变量赋值,变量中的变量,变量追加,变量覆盖。

跟我一起写Makefile(八)


这里也是变量,但是不简单,用点心吧。
多行变量。
环境变量。
目标变量。
模式变量。
条件表达和语法,很简单的那种。

跟我一起写Makefile(九)


给力的内置函数,一切为了效率。内置的高频函数不算多,用的时候过来查一下,也是好办法。
$(function params)

跟我一起写Makefile(十)


特别的函数,if函数,call函数,foreach函数等等。各安其事!

跟我一起写Makefile(十一)


make的参数,真的很有用,尤其是调试Makefile时,简直是法宝。
指定Makefile,指定目标。灵活使用。

跟我一起写Makefile(十二)


关于隐含规则的细节,你用的着。
懒人必学。

跟我一起写Makefile(十三)


这些是什么?

$@, $<, $^, $%, $?

长见识了,自动变量来了。
还有更厉害的模式规则。

跟我一起写Makefile(十四)


作者讲个后序的故事。
故事之前的内容同样重要,使用make更新函数库文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值