gpt4 book ai didi

linux - $(VAR) : in makefile 的含义

转载 作者:太空宇宙 更新时间:2023-11-04 09:11:25 26 4
gpt4 key购买 nike

我在 makefile 中找到了以下命令:

$(var):  
mkdir -p $(@D)

这个命令是什么意思?

最佳答案

$(VAR)扩展为变量的值 VAR .这是一个 Make 变量(不是 shell 等变量)。例如,如果早些时候在您的 Makefile你定义

VAR=ick/poo

然后 VAR扩展为 ick/poo , 和 @D在你的食谱中扩展到目录部分,ick .

因为您似乎对 shell 和 make 之间的关系感到困惑,我或许应该指出这是两种不同的语言,尽管在 Makefile 中。 ,你会遇到两者;食谱 - 由制表符缩进的部分 - 将被传递给 shell 进行评估(尽管通常 shell 将是 /bin/sh ,而不是 Bash,除非您特别覆盖 Make 变量 SHELL 以强制执行它)。

顺便说一下,在 shell 中,表面上相似的构造 $(cmd)执行命令替换;即命令 cmd将被评估,其输出将作为文本插入。例如,

echo Running in $(pwd)

将打印

Running in /home/you

如果在目录/home/you中执行(命令 pwd 打印出您当前的工作目录)。 ... 虽然在 Makefile , 美元符号通常会被 make 评估和消耗本身;所以要将文字美元符号传递给 shell,您必须将其加倍。

test:
echo Running in $$(pwd)

关于linux - $(VAR) : in makefile 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55777528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com