我的硬盘上有一个文件夹,名字里有括号。比如:C:/stuff (really cool)/
。make$(wildcard ..)
函数无法在此目录下正常工作。
$(wildcard C:/stuff (really cool)/*.jpg)`
完全没有结果。我想这是因为目录名中的右括号被视为
$(wildcard ..)
函数的右括号。用反斜杠转义(
和)
不起作用。同样不起作用的是,将目录名放入变量中,然后使用通配符函数。DIR = C:/stuff (really cool)
all:
@echo "$(wildcard $(DIR)/*.jpg)"
又一次,完全没有结果。
我应该如何正确地摆脱括号?
最佳答案
以下情况不起作用,请随时提醒其他人:
特殊字符通常是“受保护的”,或转义的,并用引号括起来。要创建带圆括号的变量,请使用双引号。
DIR = "C:/stuff (really cool)"
在您的情况下,最大的问题是空间,这将导致您的路径被分解成几个部分,而不是一个。
这工作:
gnu make允许您使用
\\
来逃离空间,因此对$wildcard
的调用将变成$(wildcard C:/stuff\\ (really\\ cool)/*.jpg)