15.make的隐士规则(上)----命令重复和预定义变量

目录

1.下面的程序怎么执行?为什么?

2.makefile中出现同名目标时

3.注意事项

3.什么是隐士规则(built-in rules)

4.下面的makefile能成功编译吗?为什么?

5.初探隐士规则

6.小结


  • 问题

           如果同一个目标的命令拆分的写到不同地方,会发生什么?

1.下面的程序怎么执行?为什么?

2.makefile中出现同名目标时

  • 依赖:

                   所有的依赖将合并在一起,成为目标的最终依赖

  • 命令:

                   当多处出现同一目标的命令时,make发出警告

                   所有之前定义的命令被最后定义的命令取代

3.注意事项

当使用include关键字包含其他文件时,需要确保被包含文件的同名目标只有依赖,没有命令;否则,同名目标的命令将被覆盖!

3.什么是隐士规则(built-in rules)

  • make提供了一些常用的,例行的规则实现
  • 当相应目标的规则未提供时,make尝试使用隐士规则

4.下面的makefile能成功编译吗?为什么?

因为没有指定所以回去指定的标准库里面找

make在linux、windows、uinx下都可以使用,所以cc会根据实际系统去指定

如果改变cc为gcc就会改变隐士规则

5.初探隐士规则

  • make提供了生成目标文件的隐士规则
  • 隐士规则会使用预定义变量完成编译工作
  • 改变预定义变量将部分改变隐士规则的行为
  • 当存在自定义规则时,不在使用隐士规则

6.小结

  • 当多处出现同一目标的命令时,只有最后定义的命令有效
  • make提供了一系列的隐士规则可使用
  • 当makefile中未定义相关规则时,尝试使用隐士规则
  • 隐士规则中可能使用make中的预定义变量
  • 改变预定义变量可部分改变预定义规则的行为

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值