makefile知识点总结

Makefile变量
 
$^         所有的依赖目标的集合,以空格分隔
$@        表示规则中的目标文件集
$?          所有比目标新的依赖目标的集合,以空格分隔
$<         依赖目标中的第一个目标名字。如果依赖目标是以模式(即"%")定义的,那么"$<"将是符合模式的一系列的文件集。注意,其是一个一个取出来的。
$(@D)   表示"$@"的目录部分(不以斜杠作为结尾) ,如果"$@"值是"dir/foo.o",那么"$(@D)"就是"dir",而如果"$@"中没有包含斜杠的话,其值就是"."(当前目录) 
$(@F)    表示"$@"的文件部分,如果"$@"值是"dir/foo.o",那么"$(@F)"就是"foo.o","$(@F)"相当于函数"$(notdir $@)"
 
 
 
Makefile赋值语句
 
=   是最基本的赋值
:=  是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
 
备注:makefile中“=”和“:=”的区别到底有什么区别
1、"="
make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:
    x = foo
    y = $(x) bar
    x = xyz
在上例中,y的值将会是 xyz bar ,而不是 foo bar 。

2、":="

":="表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
    x := foo
    y := $(x) bar
    x := xyz
在上例中,y的值将会是foo bar,而不是xyz bar了。

 

 

 
 

转载于:https://www.cnblogs.com/baiyou123/p/9862215.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值