【发布时间】:2015-06-02 13:11:28
【问题描述】:
我有一个函数可以返回目录中的所有文件。
# Returns all files in folder recursively that match pattern
#
# $(call rwildcard, folder,pattern)
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
参数1,即文件夹,是递归搜索文件的文件夹的路径,它是用户提供的
如果这个参数是“/”,这将耗尽内存并崩溃并出现异常。
有没有办法防止这种情况发生?除了过滤“/”作为参数。
注意:我使用的是 cygwin
【问题讨论】:
-
我猜答案是“不”。如果 make 无法分配足够的内存来包含请求的值列表,事情就会变得很糟糕。我想您也许可以在其中添加逻辑以检查递归期间返回值的长度并手动错误/等。如果列表开始变得太长,但我不确定这实际上会有多容易。
-
是的。这就是我的想法,虽然不知道如何轻松做到这一点。
标签: recursion makefile out-of-memory wildcard