рекурсивная пользовательская функция в make файле заканчивается из стековой памяти
75
5
У меня есть функция, которая возвращает все файлы в каталоге.
# 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
спросил(а)
2021-01-19T17:06:08+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
Решение
98
Я подозреваю, что вы не делаете никаких изменений во внутренней карте rwild. Если он соответствует "." каждый раз, вы застряли в петле?
Можете ли вы использовать другой инструмент для получения списка файлов?
r := $(shell find $(dir) -type f -name \*$(likethis)\*)
ответил(а)
2021-01-19T17:06:08+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
Ваш ответ
Еще в рубрике
62
Приложение для Android Gigapixel для Android
224
Sidekiq не освобождает память после того, как работники закончили
75
Получение OutOfMemoryError: превышение верхнего предела GC с сервера Tomcat на машине Linux
106
Как определить, будет ли загрузка изображения вызывать исключение OutOfMemory в .NET?
- Вопросы
- Out-of-memory
- рекурсивная пользовательская функция в make файле заканчивается из стековой памяти