Ich habe ein .sh
Skript, auf das ich doppelklicke, um es von git für Windows ausführen zu lassen.
Jetzt brauche ich (imagemagick) convert
von cygwin (das ich installiert habe) und rufe es mit seinem absoluten Pfad auf - /c/cygwin64/bin/convert.exe
- aber ich bekomme:
Schwerwiegender Fehler - Fehlanpassung der Cygheap-Basis festgestellt. Dieses Problem ist wahrscheinlich auf die Verwendung inkompatibler Versionen der Cygwin-DLL zurückzuführen.
Es hilft nicht, den eigentlichen convert
Anruf in einen Cygwin-Bash-Anruf oder sogar in einen cmd.exe
Anruf zu packen . Das ist ein bisschen seltsam, weil ich manchmal ausführbare Cygwin-Dateien direkt in .cmd
Skripten verwende, und das hat immer funktioniert.
Was kann ich machen? Eine Lösung, die mein Programm auf eine Datei beschränkt, wird bevorzugt.
(Ich weiß, ich könnte wahrscheinlich nur Windows-native Imagemagick installieren. Aber am nächsten Tag brauche ich ein anderes Cygwin-Tool in einem Git-for-Win-Shellscript. Außerdem würde ich gerne verstehen, was hier passiert. Und ja, Ich werde wahrscheinlich Git für Windows an meinem Arbeitsplatz überflüssig machen , wenn möglich)
Antworten:
Schwerwiegender Fehler - Fehlanpassung der Cygheap-Basis festgestellt.
Dieser Fehler wird verursacht, weil der Git for Windows-Pfad nicht mit Cywin kompatibel ist.
Beide verwenden
/bin
und/usr/bin
aber diese werden unterschiedlichen Verzeichnissen zugeordnet (da sie unterschiedliche Mount-Tabellen verwenden).Cywin erwartet, die DLL in zu finden
/usr/bin/cygwin1.dll
(und wird in Git für Windows nicht gefunden)Wenn Sie einen Cygwin-Befehl explizit in einer Git für Windows-
bash
Shell ausführen, kann Cygwin seine DLL nicht finden und generiert die obige Fehlermeldung.Beachten Sie unten, dass die Mount-Zuordnung für
/
unterschiedlich ist.Git für Windows:
Cygwin:
Es gibt keine Lösung, außer nicht von Cygwin abgeleitete Dienstprogramme zu mischen und abzugleichen. Wählen Sie eine und bleiben Sie dabei.
quelle
Ich hatte das gleiche Problem unter Windows 10. Ich habe mich gefragt, wie es möglich ist, viele Versionen von CygWin zu haben, obwohl ich nicht einmal eine cygwin.dll finden kann. GitExtensions-> Stash und Git Bash wurden mit unterschiedlichen Fehlermeldungen abgestürzt. Die Lösung ist hier: Gehen Sie zu Windows Defender -> App- und Browsersteuerung -> Exploit-Schutz. Und schalten Sie drei Optionen mit ASLR aus. Sie müssen Ihr System danach neu starten, aber es hilft wirklich!
quelle