makefile学习记录

本文探讨了Makefile的工作原理,重点讲解了赋值符的使用(=, :=, ?, +=),模式规则%,以及自动化变量、伪目标、函数和静态模式在软件构建中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:
1.make命令会在当前目录下查找以makefile命名的文件
2.当找到makefile文件后,会按照makefile中定义的规则去编译生成最终的目标文件
3.当发现目标文件的依赖不存在不存在,或者目标所依赖的文件比目标文件新(也就是修改时间比目标文件晚)的话就会执行后面的命令来更新依赖和目标文件

二:
“=”赋值符:采用等号赋值,变量的真实值取决于它所引用的变量的最后一次有效值
name=wh
curname=(name)name=ccprint:@echocurname:(name) name=cc print: @echo curname:(name)name=ccprint:@echocurname:(curname)

make print 结果:Curname:cc

“:=”赋值符,不会使用后面定义的变量,只能使用前面已经定义好的,和上面的相反

“?=”赋值符:如果前面没有赋值,就使用当前的赋值,否则就使用前面已经赋过的值

“+=”z追加赋值符,在前面赋值的基础上进行追加

三:模式规则%:表示长度任意的非空字符

四:自动化变量
1.@,@,@,<.$^

五:伪目标:不代表真正的目标名,在make时通过伪目标来执行其所在规则定义的命令。
clean:
rm *.o
如目录中也存在clean文件,则该命令执行失败,解决方法使用.PHONY声明
.PHONY: clean
clean:
rm *.o

六:函数
1.subst 字符串替换
2.patsubst 模式字符串替换
3.dir 获取目录
4.notdir 去除文件中的目录部分
5.foreach 循环执行
6.wildcard 变量定义或者函数定义时展开通配符

七:静态模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值