Linux - Utility- make

最近在工作上慢慢熟悉Linux上的东西,包括用到的各种工具,其中就包括make。


Linux上的应用软件普遍遵循的一个原则是:Do one thing and do it well。make就是其中的一个典范。make可用于管理多文件之间的依赖关系,以及根据这依赖关系来更新各个文件。譬如:make最初用于管理软件代码文件之间的编译依赖关系,在C++的开发情景下,.a的文件是.o文件的集合,因此一个.a文件依赖于若干个.o文件,而.o文件是由.cpp(或.c或.cc)文件编译而来,因此.o文件依赖于.cpp文件;这里的依赖是指当被依赖者被修改后,依赖者也应当作相应的更新。当然,这个更新的动作不一定是编译动作,而可以是任意的动作(例如各种的shell命令,如rm、mkdir等等)。而描述多个文件之间的依赖关系,以及更新的动作的数据文件就是常见的Makefile。Makefile里规定的语法规则就是用来描述事物之间的依赖关系,以及依赖者之间的动作的,这是非常简洁的抽象,而make工具就负责将这一抽象付诸实现。


虽然看上去make要做的事情非常的简单,但要做好又是不容易。Makefile的书写规则五花百门,初看让人摸不着头脑。不过无论多么怪异的规则,也就是规则而已,就像无论是多么晦涩的表达式,它始终是一个表达式。


其实生活中有很多像多事物之间的依赖以及随之的动作这样的抽象存在着,说白了,就是生活其实有各种的抽象。

1)譬如:到了某个时间点(或时间段)某个事物需要执行某个动作,这就是一个很简单的抽象,任何事物和任何动作都可代入这个抽象而得到具体的实现,而这个抽象在PC系统下也有相应的工具来实现,如Windows系统里可以设置任务计划,可设置在登录时(或某个指定时刻)执行某个动作等。

2)譬如:RSS就是一种很简单的抽象,其表达的含义是:当某个事物发生变化后,执行响应的动作。这里的事物可以是博客里的博文,也可以是某个网站频道的资讯;执行的动作一般是更新用于简述这些事物的文件,也可以是通知监听了这些事物的订阅者。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值