Saya memiliki .sh
skrip yang saya klik dua kali untuk menjalankannya oleh git untuk Windows.
Sekarang saya perlu (imagemagick) convert
dari cygwin (yang telah saya instal) dan saya menyebutnya dengan jalur absolutnya - /c/cygwin64/bin/convert.exe
- tapi saya dapat:
kesalahan fatal - ketidakcocokan basis cygheap terdeteksi. Masalah ini mungkin karena menggunakan versi yang tidak kompatibel dari cygwin DLL.
Membungkus convert
panggilan sebenarnya dalam panggilan bash cygwin, atau bahkan dalam cmd.exe
panggilan, tidak membantu. Ini agak aneh karena saya kadang-kadang menggunakan executable cygwin langsung dalam .cmd
skrip, dan itu selalu berhasil.
Apa yang dapat saya? Solusi yang membuat program saya terbatas pada satu file akan lebih disukai.
(Saya tahu saya mungkin hanya dapat menginstal imagemagick Windows-asli. Tapi kemudian hari berikutnya saya membutuhkan alat cygwin lain dalam git-for-Win-Shellscript .. juga, saya ingin memahami apa yang terjadi di sini. Dan, ya, Saya mungkin akan membuat git untuk Windows usang di tempat kerja saya , jika mungkin)
Jawaban:
kesalahan fatal - ketidakcocokan basis cygheap terdeteksi.
Kesalahan ini disebabkan karena jalur Git untuk Windows tidak kompatibel dengan Cywin.
Keduanya menggunakan
/bin
dan/usr/bin
tetapi memetakan ini ke direktori yang berbeda (karena mereka menggunakan tabel mount yang berbeda).Cywin berharap untuk menemukan dll di
/usr/bin/cygwin1.dll
(dan tidak ditemukan di Git untuk Windows)Ketika Anda secara eksplisit menjalankan setiap perintah Cygwin dalam Git untuk Windows
bash
shell Cygwin tidak dapat menemukan dll dan menghasilkan pesan error di atas.Perhatikan di bawah bahwa pemetaan mount untuk
/
berbeda.Git untuk Windows:
Cygwin:
Tidak ada solusi, selain tidak mencampur dan mencocokkan utilitas turunan cygwin. Pilih satu dan pertahankan.
sumber
Saya memiliki masalah yang sama pada Windows 10. Saya bertanya-tanya bagaimana mungkin memiliki banyak versi CygWin, sementara saya tidak dapat menemukan satu pun cygwin.dll. GitExtensions-> Stash dan Git Bash mengalami crash dengan pesan kesalahan yang berbeda. Solusinya ada di sini: Buka Windows Defender -> Kontrol Aplikasi & browser -> Perlindungan eksploitasi. Dan matikan tiga opsi dengan ASLR. Anda harus me-restart sistem Anda setelahnya, tetapi itu sangat membantu!
sumber