J'ai un .sh
script sur lequel je double-clique pour le faire exécuter par git pour Windows.
Maintenant, j'ai besoin (imagemagick) convert
de cygwin (que j'ai installé) et je l'appelle avec son chemin absolu - /c/cygwin64/bin/convert.exe
- mais j'obtiens:
erreur fatale - non-concordance de la base cygheap détectée. Ce problème est probablement dû à l'utilisation de versions incompatibles de la DLL cygwin.
Envelopper l' convert
appel réel dans un appel bash cygwin, ou même dans un cmd.exe
appel, n'aide pas. C'est un peu étrange car j'utilise parfois des exécutables cygwin directement dans des .cmd
scripts, et cela a toujours fonctionné.
Que puis-je faire? Une solution qui limiterait mon programme à un seul fichier serait préférable.
(Je sais que je pourrais probablement simplement installer imagemagick natif de Windows. Mais le lendemain, j'ai besoin d'un autre outil cygwin dans un git-for-Win-Shellscript .. aussi, j'aimerais comprendre ce qui se passe ici. Et, oui, Je vais probablement rendre git pour Windows obsolète sur mon lieu de travail , si possible)
Réponses:
erreur fatale - non-concordance de la base cygheap détectée.
Cette erreur est due au fait que le chemin Git pour Windows est incompatible avec Cywin.
Ils utilisent tous deux
/bin
et/usr/bin
mais ces mappages vers des répertoires différents (car ils utilisent des tables de montage différentes).Cywin s'attend à trouver la DLL
/usr/bin/cygwin1.dll
(et ne se trouve pas dans Git pour Windows)Lorsque vous exécutez explicitement une commande Cygwin dans un
bash
shell Git pour Windows , Cygwin ne peut pas trouver sa DLL et génère le message d'erreur ci-dessus.Notez ci-dessous que le mappage de montage pour
/
est différent.Git pour Windows:
Cygwin:
Il n'y a pas de solution, à part ne pas mélanger et faire correspondre les utilitaires dérivés de cygwin. Choisissez en un et gardez le.
la source
J'ai eu le même problème sur Windows 10. Je me demandais comment est-il possible d'avoir beaucoup de versions de CygWin, alors que je ne trouve même pas un cygwin.dll. GitExtensions-> Stash et Git Bash ont été bloqués avec des messages d'erreur différents. La solution est là: allez dans Windows Defender -> Contrôle des applications et du navigateur -> Protection contre les exploits. Et désactivez trois options avec ASLR. Vous devez redémarrer votre système par la suite, mais cela aide vraiment!
la source