2009-05-25 9 views
7

Ứng dụng của tôi phụ thuộc vào thư viện OpenSSL (thông qua các module mạng Qt, bạn không thể biên dịch nó thành Qt tĩnh, vì các vấn đề pháp lý)Cài đặt và đăng ký win32 thư viện OpenSSL

Có dự án này - Win32 OpenSSL

Có vẻ như tất cả những gì tôi cần là sao chép hai dll vào System32 và đăng ký chúng.

copy ssleay32.dll %WINDIR%\System32\ssleay32.dll 
copy libeay32.dll %WINDIR%\System32\libeay32.dll 
regsvr32.exe /s %WINDIR%\System32\ssleay32.dll 
regsvr32.exe /s %WINDIR%\System32\libeay32.dll 

Và thực tế, đã làm việc trên một vài máy trong văn phòng (ứng dụng của tôi bắt đầu hoạt động chính xác với https sau khi hoạt động). Những người có rất nhiều thứ được cài đặt trên chúng, vì vậy nó có thể can thiệp.

Vẫn không hoạt động trên máy ảo sạch trong VMWare.

Mặc dù khi tôi cài đặt Tortoise SVN bên dưới nó (cùng với OpenSSL) mọi thứ đều ổn. Cách thích hợp để cài đặt openssl vào hệ thống là gì?

lưu ý: Mô-đun mạng Qt có danh sách các tổ chức phát hành chứng chỉ riêng.

+0

Các gói khác sử dụng thư viện OpenSSL để bạn có thể xem xét việc đặt phiên bản cụ thể của bạn cục bộ với các tệp nhị phân của ứng dụng. Bạn sẽ nhận được một số lỗi lạ nếu các phiên bản không khớp. –

Trả lời

2

Có thể có phụ thuộc thêm rằng hai DLL những có mà SVN đã được cài đặt cho bạn ...

Cố gắng sử dụng phụ thuộc để xem những DLLs các DLL OpenSSL sử dụng, và chắc chắn rằng những người được cài đặt trên VMware sạch của bạn.

+0

Thật vậy, bạn đã đúng - ssleay.dll phụ thuộc vào msvcr90.dll đó là một số thư viện thời gian chạy microsoft, một phần của MS Redistributables. – Maleev

+0

Vấn đề bây giờ là tôi không biết cách cài đặt đúng thư viện đó. Cố gắng để đăng ký nó với regsvr32.exe tạo ra một lỗi (R6034 - smth về manifest). Nhưng đó là một câu hỏi khác ... – Maleev

+0

Bạn có thể tải xuống từ MS gói redistributable cho VC9 ... –

0

Bạn có nhiều khả năng phụ thuộc vào libsasl.dll, giao hàng với rùa-svn!

3

Chỉ cần đặt các tệp DLL trong thư mục cài đặt của ứng dụng của bạn. Không có gì để đăng ký (và bạn không thể sử dụng regsvr32 anyway, như OpenSSL không thực hiện các máy chủ ActiveX/COM, đó là những gì regsvr32 có nghĩa là cho).

0

Bạn có thể sử dụng Dependency Walker để kiểm tra xem ứng dụng của bạn có phụ thuộc gì và ứng dụng nào không thể giải quyết được.

http://www.dependencywalker.com/

Chỉ cần kéo ứng dụng của bạn để Dependency Walker và trên khung bên trái, bạn sẽ thấy tất cả các file dll mà nó cần phải chạy.