我正在尝试学习makefile,主要是为了理解我正在使用的makefile,但是我会被简单的东西抛出。我的makefile中让我困惑的部分看起来像这样:
SUBS = dir1 dir2 dir3
depend clean:
@-X=`pwd`;\
for i in $(SUBS);\
cd $$X/$$i;\
done
“-X = pwd
做什么?我收集它以某种方式将当前目录的值分配给X,但我不知道如何阅读”@ - “语法。
另外,为什么X&我需要加上'$$'而不只是'$'?我已经通过实验验证了两个$都是必要的,但是我认为只需要一个就可以用它们的值替换它们
答案 0 :(得分:3)
我不知道如何阅读“@ - ”语法。
只需从左到右阅读:-)除了开头,“@”在行的开头告诉make在执行之前不要回显该行; “ - ”告诉它忽略错误
X&我需要加上'$$'而不只是'$'?
因为make本身具有通过$访问的变量,但在这种情况下,规则使用shell变量,这些变量也可以通过$访问。 $$只是一个转义,所以执行的shell命令包含$ X,而不是makefile变量X的内容,它可能是空的。