枫林在线精华区>>程序设计>>Makefile |
[255617] 主题: 跟我一起写 Makefile(十二) |
作者: redhat (RedHat) | ||
标题: 跟我一起写 Makefile(十二)[转载] | ||
来自: 192.168.*.* | ||
发贴时间: 2004年07月24日 12:40:46 (UTC +08:00) | ||
长度: 1436字 | ||
隐含规则 ―――― 在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们 编译C/C++的源程序为中间目标文件(Unix下是文件,Windows下是文件)。本章讲述的就是 一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来的规则。 “隐含规则”也就是一种惯例,make会按照这种“惯例”心照不喧地来运行,那怕我们的Ma kefile中没有书写这样的规则。例如,把文件编译成文件这一规则,你根本就不用写出来, make会自动推导出这种规则,并生成我们需要的文件。 “隐含规则”会使用一些我们系统变量,我们可以改变这些系统变量的值来定制隐含规则的 运行时的参数。如系统变量“CFLAGS”可以控制编译时的编译器参数。 我们还可以通过“模式规则”的方式写下自己的隐含规则。用“后缀规则”来定义隐含规则 会有许多的限制。使用“模式规则”会更回得智能和清楚,但“后缀规则”可以用来保证我 们Makefile的兼容性。 我们了解了“隐含规则”,可以让其为我们更好的服务,也会让我们知道一些“约定俗成” 了的东西,而不至于使得我们在运行Makefile时出现一些我们觉得莫名其妙的东西。当然, 任何事物都是矛盾的,水能载舟,亦可覆舟,所以,有时候“隐含规则”也会给我们造成不 小的麻烦。只有了解了它,我们才能更好地使用它。 一、使用隐含规则 如果要使用隐含规则生成你需要的目标,你所需要做的就是不要写出这个目标的规则。那么 ,make会试图去自动推导产生这个目标的规则和命令,如果make可以自动推导生成这个目标 的规则和命令,那么这个行为就是隐含规则的自动推导。当然,隐含规则是make事先约定好 的一些东西。例如,我们有下面的一个Makefile: foo : foo.o bar.o cc |
||
========== * * * * * ==========
|
上级目录 |
Copyright © 2001-2025 枫林在线(www.FengLin.info) All Rights Reserved |