Was sind die Gründe dafür, dass jede Zeile in Makefile in einer separaten Shell ausgeführt wird?


Antworten:


3

Ich kann Ihnen die Gründe für die Hersteller nicht sagen, aber eine Shell pro Rezeptzeile macht für mich Sinn, da nur ein Status beibehalten und geändert werden muss, und das ist der Status im Erstellungsprozess. Außerdem stellt eine neue Shell pro Zeile sicher, dass jede Zeile bei jeder Ausführung dasselbe tut. Wenn es immer die gleichen Shell-Rezeptzeilen wären und sogar ganze Rezepte Nebenwirkungen aufeinander haben könnten und der Herstellungsprozess praktisch keine Methode hat, um zu erkennen, was wünschenswert ist und was nicht ... geschweige denn, dieses Verhalten zu kontrollieren. Eine Shell pro Zeile macht jede Zeile atomar und der Programmfluss wird zurückgegeben, um zu erstellen, was viel mehr Leistung gibt.


2

Ich vermute, der Grund dafür ist, dass "make" normalerweise anhält, wenn ein Fehler auftritt. Wenn Sie also drei separate Befehle haben, ist es möglicherweise ratsam, sofort anzuhalten, wenn Befehl 1 fehlschlägt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.