Makefile包含的五大模块

摘要.在一个完整的 Makefile 中,包含了 5 个东西:显式规则、隐含规则、变量定义、

指示符和注释.

1.显示规则:它描述了在何种情况下如何更新一个或者多个被称为目标的文件
( Makefile 的目标文件)。书写 Makefile 时需要明确地给出目标文件、目标的
依赖文件列表以及更新目标文件所需要的命令(有些规则没有命令,这样的

规则只是纯粹的描述了文件之间的依赖关系)

2.隐含规则:它是make根据一类目标文件(典型的是根据文件名的后缀)而自
动推导出来的规则。 make根据目标文件的名,自动产生目标的依赖文件并使

用默认的命令来对目标进行更新(建立一个规则).

3.变量定义:使用一个字符或字符串代表一段文本串,当定义了一个变量以后,
Makefile后续在需要使用此文本串的地方,通过引用这个变量来实现对文本串

的使用

4.Makefile 指示符:指示符指明在 make 程序读取 makefile 文件过程中所要执

行的一个动作.

5.注释: Makefile 中“ #”字符后的内容被作为是注释内容(和 shell 脚本一样)
处理。如果此行的第一个非空字符为“ #”,那么此行为注释行。注释行的结尾如果存在反斜线( \),那么下一行也被作为注释行。一般在书写 Makefile
时推荐将注释作为一个独立的行,而不要和 Makefile 的有效行放在一行中书
写。当在 Makefile 中需要使用字符“ #”时,可以使用反斜线加“ #”( \#)来
实现(对特殊字符“ #”的转义),其表示将“ #”作为一字符而不是注释的开
始标志。
需要注意的地方:
Makefile 中第一个规则之后的所有以[Tab]字符开始的的行, make 程序都会将其交
给系统 shell 程序去解释执行。因此,以[Tab]字符开始的注释行也会被交给 shell 来处
理,此命令行是否需要被执行( shell 执行或者忽略)是由系统 shell 程序来判决的。
另外,在使用指示符“ define”定义一个多行的变量或者命令包时,其定义体
(“ define”和“ endef”之间的内容)会被完整的展开到 Makefile 中引用此变量的地方
(包含定义体中的注释行); make 在引用此变量的地方对所有的定义体进行处理,决
定是注释还是有效内容。 Makefile 中变量的引用和 C 语言中的宏类似(但是其实质并
不相同,后续将会详细讨论)。对一个变量引用的地方 make 所做的就是将这个变量根
据定义进行基于文本的展开,展开变量的过程不涉及到任何变量的具体含义和功能分

析.

参考:http://www.gnu.org/software/make/manual/make.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值