永发信息网

Makefile中的$是什么意思

答案:1  悬赏:70  手机版
解决时间 2021-01-23 02:56
Makefile中的$是什么意思
最佳答案
在makefile中,会经常使用shell命令,也经常见到$var 和 $$var的情况,有什么区别呢,区别大了。不要认为在makefile的规则的命令行中使用$var就是将makefile的变量和shell共享了,这里仅仅是读取makefile的变量然后扩展开,将其值作为参数传给了一个shell命令。而$$var是在访问一个shell命令内定义的变量,而非makefile的变量。此外,如果某规则有n个shell命令行构成,而相互之间没有用';'和'\'连接起来的话,就是相互之间没有关联的shell命令,相互之间也不能变量共享。看如下例子: makefile代码段1: VAR=3 target: prerequsite1 prerequsite2 echo $VAR (1) VAR=4 (2) echo $VAR (3) echo $$VAR (4) 在代码段1中,(1)的结果是3,显然makefile利用自己的变量将$VAR扩展成3之后传递给这个echo这个shell命令。 (2)中,是一个独立的shell命令自己第一了一个shell变量,名字也叫VAR,且其值为4,不会影响到makefile中的VAR。 (3)中,同(1),makefile中的变量VAR的值依然是3 (4)makefile将$$VAR先执行一次扩展得到如下shell命令: echo $VAR然后交给shell去解释执行,可是对于这个shell命令来说VAR是一个为定义的变量,因此输出的结果就是个空行。 makefile代码段2: VAR=3 target: prerequsite1 prerequsite2 echo $VAR;\ (1') VAR=4;\ (2') echo $VAR;\ (3') echo $$VAR (4') 在代码段2中,所有的shell命令都被连接起来了,那么执行的结果就有变化了: (1')结果同(1),$VAR被替换成了3 (2')结果同(2) (3')输出3,因为虽然shell中有VAR变量,可是makefile先要进行扩展,扩展的结果就是echo 3。 (4')输出4,因为makefile扩展结果为echo $VAR,而shell中已经有了变量VAR,且其值为4.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
上海长有自动化设备有限公司怎么样?
请问有能发出次声波的东西买吗
焦燥的近义词,两个
邓字有几笔画
精炼食用油都需要什么添加剂
分庭抗礼读音是什么
小影怎么导入视频?
周杰伦和后弦谁的音乐水平高?
《长阿含经》所讲的“禅定”是第八识的禅,还
手机不能发短信了,SIM卡放进别人的手机是可
学生体质健康服务平台,微信公众号xstzjkfwpt
朋友需要打架我不想打怎么办
南航什么时候招自费飞行员?
刘谦跪拜日本天皇的“下跪门”的详情
韩版苹果6s有48g的吗?
推荐资讯
有个男演员叫张什么的,穿制度很帅,然后演过
与中国建交的国家有哪些
早教中心适合多大的宝宝去
魔兽世界 利齿青鱼哪里钓
单选题This is the first Am
季季乐童装店地址在哪,我要去那里办事,
皇家贝贝地址在哪,我要去那里办事,
上海比较好的假货在哪里可以买到
第三方平台是什么
美加净干洗部(建设北路旺达超市旁)地址在什么
新乡市向阳小学在哪里?三年级有几个班?一个
一件商品成本价是100元,提高50%后标价,又以
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?