Lỗi tải thư viện Cygwin


13

Tôi đã xây dựng thư viện spatialite sau đó thư viện gdal với sự hỗ trợ của spatialite. Cũng xây dựng mapserver phụ thuộc vào gdal thành công. Không có vấn đề với liên kết.

Khi tôi cố gắng thực thi một tiện ích gdal, tôi nhận được:

$ 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

Nhưng mọi thứ có vẻ ổn:

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

Nếu tôi sao chép cyggdal-1.dll vào thư mục hiện tại:

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

Vậy 'là gì? thư viện?

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

Cái gì đây "???" ? Làm thế nào để giải quyết vấn đề này?

Câu trả lời:


27

Sử dụng cygcheck /usr/bin/[yourbinary](ví dụ /usr/bin/curl)

Nó sẽ cho bạn biết bất cứ điều gì nó không thể tìm thấy. (Nó sẽ nói 'không thể tìm thấy [some.dll]'.)

Chỉ cần cài đặt gói mà tên dll.

Ví dụ: Khi tôi chạy:

$ curl

Nó trả lại:

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

Thế là tôi chạy:

$ cygcheck /usr/bin/curl

Nó trả lại:

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

Vì vậy, tôi đã cài đặt gói 'libsasl2'.

Nó là một thư viện thời gian chạy được cài đặt thông qua setup.exe (trình cài đặt cygwin) và curl bắt đầu hoạt động tốt.


Tôi chưa bao giờ biết về công cụ này cho đến bây giờ và nó cũng chỉ ra nguyên nhân của vấn đề của tôi: "cygcheck: track_down: không thể tìm thấy cyssasl2-2.dll". Cảm ơn nhiều.
Matt Setter

1

Tôi đã sử dụng cmd để thực thi tiện ích và nó hiển thị một cửa sổ bật lên với tên của dll bị thiếu.


0

Trong trường hợp của tôi, tôi muốn cài đặt SSH. Tôi đã phàn nàn về việc thiếu "cyggssapi-3.dll" Tôi đã cài đặt lại Cygwin và đảm bảo không cài đặt thêm bất cứ thứ gì và cài đặt các phiên bản chính xác của SSH + SSL.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.