我很难编写在文件中输出多行变量的 makefile 规则。
这是我的代码:
define VAR1
/dev d 755 - - - - -
endef
define VAR2
/test d 777 - - - - -
/test2 d 777 - - - - -
endef
VARS += $(VAR1)
VARS += $(VAR2)
all:
echo "$(VARS)" > test
然而,由于我未知的原因,回声未能告诉“未终止的引用字符串”。
我怎样才能将在单独的行上声明的每一行放入文件中?
如果将变量导出到 shell 并将其作为 shell 变量而不是 make 变量引用,那么您的运气会更好:
define VAR1
/dev d 755 - - - - -
endef
define VAR2
/test d 777 - - - - -
/test2 d 777 - - - - -
endef
define VARS
$(VAR1)
$(VAR2)
endef
export VARS
all:
echo "$$VARS" > test
请注意对 makefile 的以下调整:
- I used
define
创造VARS
,而不是一系列+=
分配,这使得更容易在值之间获得换行符VAR1
and VAR2
.
- I added
export VARS
到您的 makefile,将变量推送到 shell 调用的环境中。
- I used
$$VARS
而不是$(VARS)
取消引用它——将扩展留给 shell,而不是 make,这将避免“未终止的引用字符串”错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)