2016-04-18 3 views
0

Ich bin neu bei Makefiles. Ich möchte alle Dateien in einem Stammordner rekursiv finden und in einer Variablen speichern. Der Code, den ich geschrieben habe, zu erreichen, in Make-Datei ist dies wie folgt:Um alle Dateien in einem Ordner in Makefile rekursiv zu integrieren

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

Aber die CPP-Dateien sind nicht mit diesem auf den SOURCE Variable enthält immer mein Ansatz ist wrong.Any Hilfe in dieser Angelegenheit implementation.I denkt wird sehr geschätzt werden.

Grüße,
newbie_in

+1

Mögliche Duplikat [? Rekursive Platzhalter in GNU make] (http : //stackoverflow.com/questions/2483182/recursive-wildcards-in-gnu-make) – user657267

Antwort

0

Sie verwenden Linux Unter der Annahme, Verwendung finden:

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

oder

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

Vielen Dank für den Kommentar.Aber was ist, wenn das Betriebssystem Windows mit c ist ygwin Installation, wird es auch in dieser Umgebung funktionieren? –

+0

'$ (shell ...)' führt einen Befehl in der Shell-Umgebung aus, und cygwin ahmt linux nach, also sollte es den find-Befehl unterstützen - ABER, anscheinend ist es möglich, dass der windows find-Befehl die cygwin-Version überschreibt. Siehe [hier] (http://superuser.com/questions/126123/find-command-doesnt-seem-to-work-in-cygwin) für weitere Informationen. (Ich habe keine Cygwin, also kann ich es nicht versuchen). Viel Glück. – John

+0

Gibt es eine Möglichkeit, dies über die Windows-Eingabeaufforderung ohne Cygwin zu erreichen? –

Verwandte Themen