我正在尝试了解 makefile,主要是为了了解我正在使用的 makefile,但我却被一些可能很简单的事情所困扰。我的 makefile 中让我困惑的部分如下所示:
SUBS = dir1 dir2 dir3
depend clean:
@-X=`pwd`;\
for i in $(SUBS);\
cd $$X/$$i;\
done
“@-X=pwd
做什么?我猜它以某种方式将当前目录的值分配给 X,但我不知道如何读取“@-”语法。
另外,为什么 X 和 i 需要在前面加上“$$”而不是只用“$”?我已经通过实验验证了这两个 $ 都是必要的,但我认为只需要一个即可将每个 $ 替换为它们的值
最佳答案
I have no idea how to read the "@-" syntax.
只需从左到右阅读即可:-) 开玩笑吧,行开头的“@”告诉 make 在执行之前不要回显该行; “-”告诉它忽略错误
X & i need to be prepended with '$$' instead of just '$'?
因为 make 本身具有通过 $ 访问的变量,但在本例中规则使用 shell 变量,这些变量也是通过 $ 访问的。 $$ 只是一个转义符,因此执行的 shell 命令包含 $X,而不是 makefile 变量 X 的内容,该变量可能为空。
关于makefile - 与 Makefile 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11378718/