[makefile]知识点 $$ 比较 $ 连接符

var=3                       # a
target:
       echo $(var)       # b
       var=4                # c
       echo $(var)       # d
       echo $$var        # e
a:定义Makefile中的变量var,值为3
b:打印Makefile中的变量,值为3
c:定义shell命令中的变量var,值为4,Makefile的变量var不受影响
d:打印Makefile中的变量,值为3

e:打印shell命令中的变量。此时var为未定义的变量。

“shell命令”(注意这里的shell命令的说法)中的var明明已经定义了,为什么是未定义呢?
原因:在Makefile的规则命令,如果相互之间没有使用';\'连接起来的话,相互之间是不能共享变量的。(执行过去就过去了)
修改示例代码,使用';\'连接shell规则命令行。
var=3                         # a
target:
       echo $(var);\       # b
       var=4;\                # c
       echo $(var);\       # d
       echo $$var         # e

 

$$var

指令中定义的变量。

 

参考链接:

https://blog.csdn.net/qq_34369618/article/details/52973720

https://blog.csdn.net/huohongpeng/article/details/72624910

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值