我将使用Makefile从一组数据目录中渲染一些图来并行化进程,但是使用通配符函数进行文件名转义时会出现问题。
这是我的Makefile的标题:
SOURCE_DIR = ./results
SOURCES = $(wildcard $(SOURCE_DIR)/*cpuonly*) $(wildcard $(SOURCE_DIR)/*cudaonly*)
$(warning $(SOURCES)) # for debugging
...
示例目录名称是:
此处,警告功能的输出仅包括目录名,不带括号。 我怎样才能包含带括号的那些呢?
编辑:当然,我可以更改文件名,不包括括号。但对于这个问题,我只想知道是否使用括号是不可能的。
EDIT2 :我使用诸如“blablah-cpuonly-(123,567).log”之类的文件名对其进行了测试,输出包含了它们!但是,它会在执行规则时导致shell语法错误。 :(
答案 0 :(得分:1)
我无法重现你的问题(我知道对括号没有限制):
$ cat Makefile
foo := $(wildcard *foo*)
$(info foo = $(foo))
all: ;:
$ ls -1 *foo*
foo
foo-(bar,baz).bar
foo.mk
$ make
foo = foo foo-(bar,baz).bar foo.mk
: