Saya membangun perpustakaan spasial kemudian perpustakaan gdal dengan dukungan spasial. Juga dibangun mapserver yang bergantung pada gdal dengan sukses. Tidak ada masalah dengan penautan.
Ketika saya mencoba menjalankan utilitas gdal saya mendapatkan:
$ ogrinfo.exe
/usr/local/bin/ogrinfo.exe: error while loading shared libraries: cyggdal-1.dll: cannot open shared object file: No such file or directory
Tapi semuanya tampak baik-baik saja:
$ ldd /usr/local/bin/ogrinfo.exe
ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c900000)
kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
cyggdal-1.dll => /usr/local/bin/cyggdal-1.dll (0x710c0000)
cygcurl-4.dll => /usr/bin/cygcurl-4.dll (0x63d80000)
cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x67f00000)
cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
ADVAPI32.DLL => /cygdrive/c/WINDOWS/system32/ADVAPI32.DLL (0x77dd0000)
RPCRT4.dll => /cygdrive/c/WINDOWS/system32/RPCRT4.dll (0x77e70000)
Secur32.dll => /cygdrive/c/WINDOWS/system32/Secur32.dll (0x77fe0000)
cygcrypto-0.9.8.dll => /usr/bin/cygcrypto-0.9.8.dll (0x6ba40000)
cygidn-11.dll => /usr/bin/cygidn-11.dll (0x6c200000)
cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x674c0000)
cygintl-8.dll => /usr/bin/cygintl-8.dll (0x6f5c0000)
cygssh2-1.dll => /usr/bin/cygssh2-1.dll (0x69ec0000)
cygz.dll => /usr/bin/cygz.dll (0x692c0000)
cygssl-0.9.8.dll => /usr/bin/cygssl-0.9.8.dll (0x63400000)
cygexpat-1.dll => /usr/bin/cygexpat-1.dll (0x66ec0000)
cyggeos_c-1.dll => /usr/bin/cyggeos_c-1.dll (0x70180000)
cyggeos-3-1-1.dll => /usr/bin/cyggeos-3-1-1.dll (0x4e0000)
cygjpeg-7.dll => /usr/bin/cygjpeg-7.dll (0x66e00000)
cygpng12.dll => /usr/bin/cygpng12.dll (0x6f200000)
Jika saya menyalin cyggdal-1.dll ke folder saat ini:
$ ogrinfo.exe
/usr/local/bin/ogrinfo.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
Jadi, apa itu '?' Perpustakaan?
$ ldd cyggdal-1.dll
ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c900000)
kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
??? => ??? (0x710c0000)
??? => ??? (0x63d80000)
??? => ??? (0x67f00000)
??? => ??? (0x61000000)
??? => ??? (0x77dd0000)
??? => ??? (0x77e70000)
??? => ??? (0x77fe0000)
??? => ??? (0x6ba40000)
??? => ??? (0x6c200000)
??? => ??? (0x674c0000)
??? => ??? (0x6f5c0000)
??? => ??? (0x69ec0000)
??? => ??? (0x692c0000)
??? => ??? (0x63400000)
??? => ??? (0x66ec0000)
??? => ??? (0x70180000)
??? => ??? (0x4b0000)
??? => ??? (0x66e00000)
??? => ??? (0x6f200000)
Apa ini "???" ? Bagaimana cara mengatasi masalah ini?
Saya menggunakan cmd untuk menjalankan utilitas dan itu menunjukkan popup dengan nama dll yang hilang.
sumber
Dalam kasus saya, saya ingin menginstal SSH. Itu mengeluh tentang hilang "cyggssapi-3.dll" Saya menginstal ulang Cygwin dan memastikan untuk tidak menginstal apa pun ekstra, dan untuk menginstal versi yang benar dari SSH + SSL.
sumber