2009-05-25 8 views
7

Moja aplikacja zależy od bibliotek OpenSSL (poprzez moduły sieci Qt; nie można go skompilować do Qt statycznie, ze względu na kwestie prawne)Instalowanie i rejestracji win32 biblioteki OpenSSL

Jest to projekt - Win32 OpenSSL

Wydaje się, że wszystko, czego potrzebuję, to skopiowanie dwóch bibliotek dll do System32 i zarejestrowanie ich.

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 

Rzeczywiście, działało to na kilku komputerach w biurze (moja aplikacja zaczęła działać poprawnie z https po operacji). Te mają wiele rzeczy zainstalowanych na nich, więc może to przeszkadzać.

Nadal nie działa na czystej wirtualnej maszynie pod VMWare.

Chociaż po zainstalowaniu SVN Tortoise pod nim (który jest również dostarczany z OpenSSL) wszystko jest w porządku. Jaki jest właściwy sposób instalacji openssl w systemie?

uwaga: moduł sieciowy Qt ma własną listę certyfikatów.

+0

Inne pakiety również korzystają z bibliotek OpenSSL, więc warto rozważyć umieszczenie konkretnej wersji lokalnie w plikach binarnych aplikacji. Otrzymasz dziwne błędy, jeśli wersje się nie zgadzają. –

Odpowiedz

2

Może istnieją dalsze Zależności te mają dwa DLL że SVN zainstalował dla Ciebie ...

Próba korzystania zależy aby zobaczyć, które pliki DLL DLLe OpenSSL użyciu, i upewnić się, te są zainstalowane w czystym VMware.

+0

Rzeczywiście, masz rację - ssleay.dll zależy od msvcr90.dll, która jest biblioteką uruchomieniową microsoft, częścią składników redystrybucyjnych MS. – Maleev

+0

Problem polega na tym, że nie wiem, jak poprawnie zainstalować tę bibliotekę. Próba zarejestrowania go za pomocą polecenia regsvr32.exe powoduje błąd (R6034 - coś na temat manifestu). Ale to zupełnie inne pytanie ... – Maleev

+0

Możesz pobrać z MS pakiet redystrybucyjny dla VC9 ... –

0

Najprawdopodobniej jesteś zależny od libsasl.dll, który jest dostarczany z tortoise-svn!

3

Wystarczy umieścić pliki DLL w folderze instalacyjnym aplikacji. Nie ma nic do zarejestrowania (i nie możesz używać regsvr32 tak czy inaczej, ponieważ OpenSSL nie implementuje serwerów ActiveX/COM, do czego służy regsvr32).

0

Możesz użyć Dependency Walker, aby sprawdzić, jaka jest zależność twojej aplikacji i która z nich nie była w stanie rozwiązać.

http://www.dependencywalker.com/

Wystarczy przeciągnąć swoją aplikację do Dependency Walker i na lewym panelu widać wszystkie pliki DLL, że musi uciekać.

Powiązane problemy