完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,最近我在学习关于makefile的语法,看到变量赋值展开的部分产生了疑惑,希望有朋友可以提点下:我看资料上说用“=”赋值的变量是延后展开;而用“:=”赋值的变量则是立即展开
那么如果我现在有这样几行定义: var1 = TEXT var2 = $(var1) var3 := $(var1) var4 := $(var2) 按照我的理解: 1)当make读取到第一行时,var1被赋值为TEXT 2)当make读取到第二行时,var2被赋值为$(var1)(只在后面引用var2的值时,才回去解析$(var1),而这里不做理会) 3)当meke去读到第三行时,var3被赋值为TEXT(因为这里var3的赋值方式为立即展开,所以当场解析$(var1),发现它等于TEXT,故var3等于TEXT) 4)我的问题在第四行。这里var4也是立即展开,故$(var2)被立即解析,前面第二条分析了var2当前的值就是$(var1)了。我很好奇这里会接着进一步解析$(var1)吗?还是仅把$(var1)当成普通的字符串径直赋给var4便了事。待到后面需要引用var4的时候,再去解析其值$(var1)? |
|
相关推荐
1个回答
|
|
有谁研究过?
|
|
|
|
只有小组成员才能发言,加入小组>>
「含关键代码」基于AM3352/AM3354/AM3359的Linux开发案例分享
4939 浏览 0 评论
87477 浏览 0 评论
【高手问答】如何做到精通linux威廉希尔官方网站 ?资深工程师带你突破难点
4829 浏览 2 评论
3673 浏览 2 评论
解读Linux :先从创建一个文件夹用来存放jdk压缩文件开始
2525 浏览 0 评论
1424浏览 1评论
求解:aarch64交叉编译工具已经安装成功,环境变量已经配置,怎么将系统架构切换为ARM的架构
1447浏览 0评论
电脑和虚拟机可以互ping,电脑和开发板也可以互ping,但是虚拟机和开发板ping不通是什么原因
1289浏览 0评论
1590浏览 0评论
Linux 6.4 上针对 RISC-V 支持了 Hibernation 和 Suspend-To-Disk
1462浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-23 04:39 , Processed in 1.133343 second(s), Total 74, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191