Erreur de chargement de la bibliothèque Cygwin

13

J'ai construit la bibliothèque spatialite puis la bibliothèque gdal avec le support spatialite. Mapserver également construit qui dépend de gdal avec succès. Il n'y a eu aucun problème de liaison.

Lorsque j'essaie d'exécuter un utilitaire gdal, j'obtiens:

$ 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

Mais tout semble aller 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 je copie le cyggdal-1.dll dans le dossier actuel:

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

Alors qu'est-ce qu'un '?' bibliothèque?

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

Qu'est-ce que c'est "???" ? Comment résoudre ce problème?


la source

Réponses:

27

Utilisation cygcheck /usr/bin/[yourbinary](exemple /usr/bin/curl)

Il vous dira tout ce qu'il n'a pas pu trouver. (Il dira «n'a pas pu trouver [certains.dll]».)

Installez simplement le package que les noms de DLL.

Par exemple - Quand j'ai couru:

$ curl

Il est revenu:

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

J'ai donc couru:

$ cygcheck /usr/bin/curl

Il est revenu:

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

J'ai donc installé le paquet 'libsasl2'.

Il s'agit d'une bibliothèque d'exécution installée via setup.exe (programme d'installation de cygwin) et curl a commencé à fonctionner correctement.

jfgrissom
la source
Je n'ai jamais connu cet outil jusqu'à présent et il a également indiqué la cause de mon problème: "cygcheck: track_down: n'a pas pu trouver cygsasl2-2.dll". Merci beaucoup.
Matt Setter
1

J'ai utilisé cmd pour exécuter l'utilitaire et il a montré une fenêtre contextuelle avec le nom de la DLL manquante.


la source
0

Dans mon cas, je voulais installer SSH. Il se plaignait de l'absence de "cyggssapi-3.dll". J'ai réinstallé Cygwin et je me suis assuré de ne rien installer de plus et d'installer les versions correctes de SSH + SSL.

Le pois rouge
la source