Mam .sh
skrypt, który klikam dwukrotnie, aby go uruchomić przez git dla Windows.
Teraz potrzebuję (imagemagick) convert
od cygwina (który zainstalowałem) i nazywam to absolutną ścieżką - /c/cygwin64/bin/convert.exe
- ale otrzymuję:
błąd krytyczny - wykryto niezgodność bazy cygheap. Ten problem jest prawdopodobnie spowodowany użyciem niekompatybilnych wersji biblioteki DLL cygwin.
Zawijanie rzeczywistego convert
połączenia w połączenie cygwin bash, a nawet w cmd.exe
połączenie, nie pomaga. Jest to trochę dziwne, ponieważ czasami używam plików wykonywalnych cygwin bezpośrednio w .cmd
skryptach i to zawsze działało.
Co mogę zrobić? Preferowane byłoby rozwiązanie, które ogranicza mój program do jednego pliku.
(Wiem, że prawdopodobnie mógłbym po prostu zainstalować natywną grafikę systemu Windows. Ale następnego dnia potrzebuję innego narzędzia cygwin w git-for-Win-Shellscript ... chciałbym też zrozumieć, co się tutaj dzieje. I tak, Prawdopodobnie sprawię, że git dla Windows stanie się przestarzały w moim miejscu pracy , jeśli to możliwe)
Odpowiedzi:
błąd krytyczny - wykryto niezgodność bazy cygheap.
Ten błąd jest spowodowany, ponieważ ścieżka Git dla Windows jest niezgodna z Cywin.
Obaj wykorzystanie
/bin
i/usr/bin
ale to mapa do różnych katalogów (ponieważ używają różnych tabel montowania).Cywin spodziewa się znaleźć dll w
/usr/bin/cygwin1.dll
(i nie znajduje się w Git dla Windows)Po jawnym uruchomieniu dowolnego polecenia Cygwin w
bash
powłoce Git dla Windows Cygwin nie może znaleźć swojej biblioteki DLL i generuje powyższy komunikat o błędzie.Zauważ, że mapowanie montowania
/
jest inne.Git dla Windows:
Cygwin:
Nie ma innego rozwiązania, niż mieszanie i dopasowywanie narzędzi pochodnych od cygwina. Wybierz jeden i trzymaj się go.
źródło
Miałem ten sam problem w systemie Windows 10. Zastanawiałem się, jak można mieć wiele wersji CygWin, podczas gdy nie mogę znaleźć nawet jednego cygwin.dll. GitExtensions-> Stash i Git Bash uległy awarii z różnymi komunikatami o błędach. Rozwiązanie jest tutaj: Przejdź do Windows Defender -> Kontrola aplikacji i przeglądarki -> Ochrona przed lukami w zabezpieczeniach. I wyłącz trzy opcje za pomocą ASLR. Następnie musisz ponownie uruchomić system, ale to naprawdę pomaga!
źródło