2009-05-25 5 views
7

Mon application dépend des bibliothèques OpenSSL (par le biais de modules de réseau Qt, vous ne pouvez pas compiler dans Qt statiquement, en raison de problèmes juridiques)installation et l'enregistrement des bibliothèques OpenSSL win32

Il y a ce projet - Win32 OpenSSL

On dirait que tout ce dont j'ai besoin est de copier les deux DLL dans System32 et de les enregistrer.

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 

Et en effet, qui a travaillé sur deux machines dans le bureau (mon application a commencé à travailler correctement avec https après l'opération). Ceux-ci ont beaucoup de choses installées sur eux, de sorte qu'il peut interférer.

Cependant, cela ne fonctionne pas sur une machine virtuelle propre sous VMWare. Cependant, lorsque j'installe Tortoise SVN (qui est également livré avec OpenSSL), tout va bien. Quelle est la bonne façon d'installer openssl dans le système?

remarque: le module de mise en réseau Qt possède sa propre liste d'autorités de certification.

+0

D'autres packages utilisent également les bibliothèques OpenSSL. Vous pouvez donc envisager de placer votre version spécifique localement avec les fichiers binaires de l'application. Vous obtiendrez des erreurs étranges si les versions ne correspondent pas. –

Répondre

2

Peut-être il y a d'autres dépendances que ces deux DLL ont que SVN a installé pour vous ...

Essayez d'utiliser dépend de voir quelles DLL les DLL OpenSSL utilisent, et assurez-vous que ceux-ci sont installés sur votre propre VMware.

+0

En effet, vous aviez raison - ssleay.dll dépend de msvcr90.dll qui est une bibliothèque microsoft runtime, partie de MS Redistributables. – Maleev

+0

Le problème est maintenant que je ne sais pas comment installer correctement cette bibliothèque. Essayer de l'enregistrer avec regsvr32.exe produit une erreur (R6034 - smth à propos du manifeste). Mais c'est une toute autre question ... – Maleev

+0

Vous pouvez télécharger à partir de MS le paquet redistribuable pour VC9 ... –

0

Vous dépendez probablement de libsasl.dll, qui est fourni avec tortoise-svn!

3

Placez simplement les DLL dans le dossier d'installation de votre application. Il n'y a rien à enregistrer (et vous ne pouvez pas utiliser regsvr32 de toute façon, car OpenSSL n'implémente pas les serveurs ActiveX/COM, ce à quoi regsvr32 est destiné).

0

Vous pouvez utiliser Dependency Walker pour vérifier la dépendance de votre application et celles qu'elle n'a pas pu résoudre.

http://www.dependencywalker.com/

Il suffit de faire glisser votre application à la dépendance Walker et sur le volet de gauche, vous verrez tous les dll dont il a besoin pour fonctionner.

Questions connexes