2016-04-18 9 views
0

Я новичок в makefiles. Я хочу рекурсивно найти все файлы в корневой папке и сохранить ее в переменной. Код, который я написал для достижения этой цели в Makefile, как показано ниже:Чтобы рекурсивно включить все файлы в папку в makefile

dirs:=$(root_folder)/*/ 
SOURCE:=$(foreach dir,$(dirs),$(wildcard $(dir)/*.cpp)) 

Но файлы .cpp не получают включены в переменную SOURCE с этим implementation.I думаю, что мой подход wrong.Any помощь в этом вопросе будет очень признателен.

С уважением,
newbie_in

+1

Возможный дубликат [? Рекурсивных маски в GNU Make] (HTTP : //stackoverflow.com/questions/2483182/recursive-wildcards-in-gnu-make) – user657267

ответ

0

Предполагая, что вы используете Linux, воспользуйтесь ссылкой:

SOURCE:=$(shell find $(root_folder) -name *.cpp) 

или

SOURCE:=$(shell cd $(root_folder) && find . -name *.cpp) 
+0

Благодарим за комментарий. Но что, если ОС - это окна с c ygwin, будет ли он отлично работать и в этой среде? –

+0

'$ (shell ...)' запускает команду в среде оболочки, а cygwin имитирует linux, поэтому он должен поддерживать команду find - НО, видимо, возможно, что команда find найдет переопределить версию cygwin. См. [Здесь] (http://superuser.com/questions/126123/find-command-doesnt-seem-to-work-in-cygwin) для получения дополнительной информации. (У меня нет cygwin, поэтому я не могу попробовать). Удачи. – John

+0

Есть ли способ достичь этого через командную строку Windows без cygwin? –

Смежные вопросы