很多人对$var与$$var东西不理解,总是区分不开Makefile中的变量与shell中的变量,我来解释一下吧。希望对你有用。
首先make精神就是实现自动化编译,是按照Makefile的规则来进行的,啥子规则呢,目标与依赖文件的规则。
凡是目标后面有依赖,并根据依赖产生目标的才是干货,如果只有目标,而没有依赖,那就是伪目标,把它当标签看待就好了。
在Makefile中文件中定义的变量就是Makefile变量,比如 var=3,那么使用就是$var
那$$var代表啥呢,代表的是使用shell变量。这个需要进行一次扩展,在Makefile中目标依赖下面的命令中定义的变脸,就是shell变量,还有一种shell变量,就是外部传递的,export带来的。首先展开shll变量 $var,比如var=4,那么$$var=$4,现在就看$4有没有值,如果没有则为空。
本文解析了Makefile中的变量与shell变量的区别,包括$var与$$var的使用场景及含义,帮助读者理解如何在Makefile中正确使用这两种变量。
2688

被折叠的 条评论
为什么被折叠?



