arm架构-makefile

Makefile的核心﹣-﹣规则

目标:依赖1 依赖2...

[TAB]命令

当"目标文件不存在,或某个依赖文件比目标文件"新",

则:执行"命令"

a6cc66c8564c44239906b21b022feec2.png

 通配符

Makefile中表示一个文件名时,可以使用通配符。在Makefile中可以使用的通配符有:* 、? 、 […]。通配符的使用方法和含义和在shell中一样。比如:*.c 表示当前目录下所有以“.c”结尾的文件。除此之外,Makefile还有经常使用的几个自动变量也可以看做特殊通配符:

  • $@:所有目标文件
  • $^:目标依赖的所有文件
  • $<:第一个依赖文件
  • $?:所有更新过的依赖文件目标的

假想目标

.PHONY: 目标

使用了假想目标的目标之后不会去寻找目标文件是否存在

即时变量、延时变量,export
简单变量(即时变量):
A := XXX # A的值即刻确定,在定义时即确定
B = XXX # B的值使用到时才确定

:= # 即时变量
=  # 延时变量
?= # 延时变量,如果是第1次定义才起效,如果在前面该变量已定义则忽略这句

+=#附加,它是即时变量还是延时变量取决于前面的定义

Makefile函数


a. $(foreach var,list, text)    # 将list的中的变量,改为text表达式的模样
b. $(filter pattern...,text)      #  在text中取出符合patten格式的值
$(filter-out pattern...,text)  # 在text中取出不符合patten格式的值
c. $(wildcard pattern)          # pattern定义了文件名的格式,

              #wildcard取出其中存在的文件

$(patsubst pattern,replacement,$(var)) #从列表中取出每一个值
#如果符合pattern
#则替换为replacement

简单来说:

foreach:只能统一对所有对象做统一的修改

filter:查找到显示出来所有符合条件的对象

wildcard:找出存在符合条件格式的文件

patsubst:能查找替换

使用make命令

make [目标] 

若无目标,默认第一个目标630f7584a44f402a9a5f5cad5b05a05d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值