BLP读书摘录和笔记——make

    许多程序员都会在自己的Makefile文件中将第一个目标定义为all然后再列出其他从属目标。这个约定可以明确地告诉make,在未指定特定目标时,默认应该创建哪个目标。

1 依赖关系

    先写目标的名称,然后紧跟着一个冒号,接着是空格或TAB,最后是空格或TAB隔开的文件列表。如果想一次创建多个文件,可以利用伪目标all。假如程序由myapp和手册myspp.1组成,可以用下面的语句

义:

    all: myall myapp.1

2 规则

    在Makefile中空格和TAB是有区别的。规则所在行必须以TAB开头。如果Makefile中的某行以空格结尾,这可能会导致make命令的失败

3 注释

    #开头为注释

4 Makefile中的宏

    使用语句MACRONAME=value定义宏,$(MACRONAME)或${MACRONAME}引用宏。命令行的宏定义覆盖Makefile中的宏定义。在Makefile之外用宏时,宏定义必须以单参数的形式传递,所以避免在宏定义中使用空格或给宏定义加上引号。

    make的内置宏会随着Makefile的处理进展而发生变化。

定义
$?当前目标所依赖的文件列表中比当前目标文件还要新的文件
$@当前目标的名字
$<当前依赖文件的名字
$*不包括后缀名的当前依赖文件的名字

 

    两个特殊字符(出现在命令前):

    -   : 忽略所有错误

    @ :不要将该命令显示在标准输出上

5 多个目标 6 内置规则

    推导规则,make -p查看所有的内置规程

7 后缀和模式规则

    make也支持通配符语法的模式规则

8 用make管理函数库

    该规则常见形式

.c.a:

    $(CC) –c $(CFLAGS) $<

    $(AR) $(ARRFLAGS) $@ $* .o

    $(AR) 的默认取值是ar

    $(ARRFLAGS)的默认取值是rv

9 makefile和子目录

mylib.a:

    (cd mylibdirectory;$(MAKE))

    用括号将两个命令括起来,确保他们只被一个单独的shell处理

10 GNU make和gcc

    gcc –MM

    生成项目的依赖关系

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值