Nach mehr Experimenten und Lesen habe ich einige Fortschritte gemacht. Ich glaube, ich verstehe jetzt die Logik.
Es scheint, dass alle Rezeptbefehle im Makefile ausschließlich Shellbefehle sind, sobald sich sh.exe im Ordner befindet PATH
. Sie können keine Windows-Befehle sein.
Nach dem Entfernen von sh.exe funktionierte cygwin/bin
das ursprüngliche Makefile wie erwartet. 'cmd' kann auch explizit anstelle des Standard-'sh' im Makefile angegeben werden:
clean: cmd /c 'del /F /Q file.txt'
Wenn dies richtig ist, ist dies etwas enttäuschend. Dadurch, dass cygwin/bin
in der ‚PATH‘ Ich war die Annahme, beide Arten von Befehlen in der Make - Datei verwendet werden könnten, wie auf den Windows - Befehlen oder in Batch - Datei.
Was für mich immer noch nicht sinnvoll ist, ist, dass Windows-Befehle funktionieren, wenn sh.exe nicht in Reichweite ist. Noch fehlt ein Teil der Logik.
(Entschuldigung für das Posten auf der falschen Seite. Ich dachte, ich wäre bei stackoverflow. Wenn der Moderator diesen Beitrag verschieben oder löschen kann, tun Sie dies bitte.)