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?


fuente

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.

jfgrissom
fuente
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.


fuente
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.

El guisante rojo
fuente