Linux-Makefile编程学习分享

  1. Makefile编程

Makefile中的目标分两类:

伪目标:只作为标签使用,本身没有任何意义!

常用的伪目标:

all:当前Makefile第一个目标是伪目标,一般喜欢使用all作为目标名!

clean:如果做清除操作,为了明确操作代码,目标可以命名为clean

目标:如果制定工程编译规则,这时使用的就是目标!

目标定义格式: target: 依赖文件

1)拥有自动推导规则!

编译过程中: 预处理、编译、汇编-->main.o  show.o  led.o  key.o-->链接-->app

2)使用Makefile制定编译规则的时候,一般用的是自动编译变量!

补充:

make   -f filename :指定filename文件作为make的执行对象!

 

2.1 自动编译变量

在编译过程中,每一个自动变量都固定表示某一个位置的值!

$@ : 当前编译目标!<该变量固定存放当前目标的目标名>

$^ : 当前目标所有依赖文件!

$< : 当前目标的第一个依赖文件

$? : 上一次编译完成之后,又修改过的依赖文件的集合

$+ : 表示所有依赖文件,不会去掉重复的文件

$* : 表示当前目标所有依赖文件!过滤重复依赖!<上层Makefile不支持>

 

Makefile中统配符不是*,而是%。

 

2.2 Makefile的递归调用

某一个目录下的Makefile要去调用其他目录下的Makefile,用法如下:

make   -C   指定路径   执行目标   var=123

说明:

make :执行一个Makefile

-C :指定要执行那个路径下的Makefile

指定路径:要执行的Makefile文件所在的路径

执行目标:指定路径下的Makefile中的某一个目标

var=123 :给指定路径下的Makefile的传参   

注意:上面这种Makefile递归调用必须放在Makefile文件中编写,不能命令行独立编写!

注意:Makefile文件名和目标名不能相同!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值