Makefile 目标中的等号
Equal sign in Makefile target
在 Makefile 的目标名称中有等号的好方法吗?
如果我写一个 Makefile 像
test=file:
touch test=file
我明白了
Makefile:2: *** recipe commences before first target. Stop.
我发现解决这个问题的唯一方法是
NAME = test=file
$(NAME):
touch test=file
这可行,但为每个文件名定义一个变量会有点麻烦。有没有更好的方法,直接 quoting/escaping =
?
除了使用变量来隐藏 =
别无他法。当然,您不必将整个文件名放在您可以使用的变量中:
EQ = =
test$(EQ)file: ; touch $@
或者,如果将其放入单字母变量中,则不需要 ()
:
E = =
test$Efile: ; touch $@
如果你愿意。
在 Makefile 的目标名称中有等号的好方法吗?
如果我写一个 Makefile 像
test=file:
touch test=file
我明白了
Makefile:2: *** recipe commences before first target. Stop.
我发现解决这个问题的唯一方法是
NAME = test=file
$(NAME):
touch test=file
这可行,但为每个文件名定义一个变量会有点麻烦。有没有更好的方法,直接 quoting/escaping =
?
除了使用变量来隐藏 =
别无他法。当然,您不必将整个文件名放在您可以使用的变量中:
EQ = =
test$(EQ)file: ; touch $@
或者,如果将其放入单字母变量中,则不需要 ()
:
E = =
test$Efile: ; touch $@
如果你愿意。