1

我将使用 Makefile 从一组数据目录中渲染一些图以并行化该过程,但是在使用通配符函数转义文件名时遇到问题。

这是我的 Makefile 的标题:

SOURCE_DIR = ./results
SOURCES = $(wildcard $(SOURCE_DIR)/*cpuonly*) $(wildcard $(SOURCE_DIR)/*cudaonly*)
$(warning $(SOURCES))  # for debugging
...

示例目录名称是:

  • blahblah-cpuonly-123
  • blahblah-cudaonly-345
  • blahblah-cpuonly-(123,567)

这里,警告函数的输出只包括不带括号的目录名。我怎样才能包括那些带括号的呢?

编辑:当然,我可以将文件名更改为不包含括号。但是对于这个问题,我只想知道是否不可能使用括号。

EDIT2:我使用诸如“blablah-cpuonly-(123,567).log”之类的文件名对其进行了测试,输出包括它们!但是,它在执行规则时会导致 shell 语法错误。:(

4

1 回答 1

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
:
于 2013-06-17T13:36:57.963 回答