Makefile自动变量不会转义文件名中的字符

时间:2016-03-29 15:45:11

标签: makefile escaping automatic-variable

我在Makefile中使用带有静态模式规则的自动变量,但是我遇到了带括号的文件名的问题。对于shell,括号没有正确转义,我从shell中得到语法错误:

/bin/sh: -c: line 0: syntax error near unexpected token `('

有没有办法让make自动转义文件名中的“坏”字符?我尝试使用括号,例如$(<)$(@),但似乎没有任何区别。

1 个答案:

答案 0 :(得分:1)

当你将它们传递给shell时,你能在自动变量周围放一些单引号吗?因此,请尝试$<,而不是'$<'。如果你必须用相当于一个文件名的东西来做这件事,例如$+然后您可以使用$(patsubst %,'%',$+)