Error de carga de la biblioteca Cygwin


13

Construí una biblioteca espacial y luego una biblioteca gdal con soporte espacial. También se construyó el servidor de mapas que depende de gdal con éxito. No hubo ningún problema con la vinculación.

Cuando intento ejecutar una utilidad gdal me sale:

$ 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

Pero todo parece estar bien:

$ 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)

Si copio el cyggdal-1.dll a la carpeta actual:

$ ogrinfo.exe
/usr/local/bin/ogrinfo.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

Entonces, ¿qué es un '?' ¿biblioteca?

$ 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)

Que son estos "???" ? ¿Cómo resolver este problema?

Respuestas:


27

Usar cygcheck /usr/bin/[yourbinary](ejemplo /usr/bin/curl)

Le dirá todo lo que no pudo encontrar. (Dirá 'no se pudo encontrar [some.dll]'.)

Simplemente instale el paquete que los nombres dll.

Por ejemplo, cuando corrí:

$ curl

Volvió:

/usr/bin/curl.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

Entonces corrí:

$ cygcheck /usr/bin/curl

Volvió:

cygcheck: track_down: could not find cygsasl2-2.dll

Así que instalé el paquete 'libsasl2'.

Es una biblioteca de tiempo de ejecución instalada a través del setup.exe (instalador de cygwin) y curl comenzó a funcionar bien.


Nunca supe de esta herramienta hasta ahora y también señaló la causa de mi problema: "cygcheck: track_down: no se pudo encontrar cygsasl2-2.dll". Muchas gracias.
Matt Setter

1

Utilicé cmd para ejecutar la utilidad y mostró una ventana emergente con el nombre de dll faltante.


0

En mi caso, quería instalar SSH. Se quejaba de la falta de "cyggssapi-3.dll". Reinstalé Cygwin y me aseguré de no instalar nada adicional y de instalar las versiones correctas de SSH + SSL.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.