Cygwin 라이브러리로드 오류


13

공간 라이트 라이브러리를 구축 한 다음 공간 라이트를 지원하는 gdal 라이브러리를 구축했습니다. 또한 성공으로 gdal에 의존하는 맵 서버를 구축했습니다. 연결에 문제가 없었습니다.

gdal 유틸리티를 실행하려고하면 다음과 같은 결과가 나타납니다.

$ 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

그러나 모든 것이 잘 보입니다.

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

cyggdal-1.dll을 현재 폴더로 복사하면 :

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

그래서 '는 무엇입니까? 도서관?

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

이것들은 무엇입니까? ? 이 문제를 해결하는 방법?

답변:


28

사용 cygcheck /usr/bin/[yourbinary](예 /usr/bin/curl)

찾을 수없는 것을 알려줍니다. ( '[some.dll]을 (를) 찾을 수 없습니다'라고 표시됩니다.)

dll이라는 이름의 패키지를 설치하십시오.

예를 들어-내가 달릴 때 :

$ curl

반환 :

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

그래서 나는 달렸다.

$ cygcheck /usr/bin/curl

반환 :

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

그래서 'libsasl2'패키지를 설치했습니다.

setup.exe (cygwin 설치 관리자)를 통해 설치된 런타임 라이브러리이며 curl이 제대로 작동하기 시작했습니다.


지금까지이 도구에 대해 전혀 몰랐으며 문제의 원인도 지적했습니다 : "cygcheck : track_down : cygsasl2-2.dll을 (를) 찾을 수 없음". 많은 감사합니다.
Matt Setter

1

cmd를 사용하여 유틸리티를 실행했으며 누락 된 dll 이름의 팝업이 표시되었습니다.


0

필자의 경우 SSH설치하고 싶었습니다 . "cyggssapi-3.dll"이 누락되었다는 불만이있었습니다. Cygwin을 다시 설치하고 추가 항목을 설치하지 않고 올바른 버전의 SSH + SSL을 설치했는지 확인했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.