Makefile文件中,两个$的变量变量$$Xxx 与一个$的变量 $Xxx的区别
Makefile 中的变量引用
在 Makefile 中,$ 符号用于变量替换,但它的使用方式有一些细微的区别:
单个 $ 符号($Xxx)
-
用途:用于引用
Makefile中定义的变量。 -
用法:
$后面可以跟变量名,通常用括号或花括号括起来以明确变量名的边界。 -
示例:
VAR = value all: echo $(VAR)在这个例子中,
$(VAR)会被替换为value。
双 $ 符号($$Xxx)
-
用途:用于在 Makefile 中传递给 shell 的命令中引用 shell 变量。
-
用法:
$$会被 make 解析为单个$,从而在 shell 中使用。 -
示例:
all: echo $$PATH在这个例子中,
$$PATH会被 make 解析为$PATH,从而在 shell 中输出环境变量 PATH 的值。
具体区别
$Xxx:用于 Makefile 变量替换。make 会在执行命令之前将其替换为变量的值。$$Xxx:用于传递给 shell 的命令中引用 shell 变量。make 会将$$转换为$,从而在 shell 中使用。
例子
假设你有一个 Makefile 如下:
VAR = Hello
all:
# 使用 Makefile 变量
echo $(VAR)
# 使用 shell 变量
echo $$USER
echo $(VAR):make 会将$(VAR)替换为Hello,然后执行echo Hello。echo $$USER:make 会将$$USER转换为$USER,然后 shell 会替换$USER为当前用户的用户名。
总结
- 使用
$来引用 Makefile 中的变量。 - 使用
$$来引用 shell 中的变量,以确保在传递给 shell 时保留单个$符号。
本文来自博客园,作者:张飞的猪,转载请注明原文链接:https://www.cnblogs.com/the-pig-of-zf/p/18632480
公众号:张飞的猪大数据分享,不定期分享大数据学习的总结和相关资料,欢迎关注。
个人网站"张飞的猪编程工作室"链接: https://zhangfeidezhu.com

使用来引用 Makefile 中的变量。使用$$来引用 shell 中的变量,以确保在传递给 shell 时保留单个符号。
浙公网安备 33010602011771号