So ist der Kern des Problems, dass ich mein Makefile sowohl unter Linux als auch Windows verwenden möchte. Wenn ich die gemeinsame CFILES := $(shell find $(SDIR) -name '*.cpp')
meine .cpp
Dateien finden, ruft das Shell Escape unter Windows eine Umgebung auf, die die Tatsache ignoriert, dass das MSYS64/bin das erste Verzeichnis ist, nach Programmen in meinem PATH zu suchen, und den internen Suchbefehl von Windows verwendet. das tut etwas ganz anderes als das unix-find-programm.Makefile finde alle * .cpp und * .h Dateien bricht in Windows
Also muß ich entweder
a) einen Weg finden, dass die Marke Shell-Escape unter Windows in der Tat die "unixary" findet nicht verwendet, dass in meinem PATH gefunden wird
oder
b) Finden Sie einen Weg, alle Dateien ohne Shell-Escape zu finden ...
Versuchen 'CFILES: = $ (Platzhalter $ (SDIR)/* CPP.)'. Aber das wird nicht in Unterverzeichnissen rekurrieren. –
Leider ist das etwas, was ich brauche, da das Projekt nicht managbar sein könnte sonst. – salbeira
Können Sie dem aktuellen Verzeichnis oder einem anderen Verzeichnis, das sich auf dem Pfad befindet, Dateien hinzufügen? Sie könnten 'myfind.bat' und' myfind' haben, wo der erste 'MSYS64 \ bin \ find.exe' aufruft und letzterer nur' find' aufruft. –