2009-05-25 13 views
7

Mi aplicación depende de las bibliotecas de OpenSSL (a través de módulos de red de Qt, no se puede compilar en Qt forma estática, debido a cuestiones legales)bibliotecas OpenSSL Instalación y Win32 registrarse

Hay este proyecto - Win32 OpenSSL

Parece que todo lo que necesito es copiar los dos dlls en System32 y registrarlos.

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 

Y, en efecto, que ha trabajado en un par de máquinas en la oficina (mi aplicación comenzó a trabajar correctamente con https después de la operación). Esos tienen muchas cosas instaladas en ellos, por lo que puede interferir.

Todavía no funciona en una máquina virtual limpia bajo VMWare.

Aunque cuando instalo Tortoise SVN debajo de él (que también se incluye con OpenSSL), todo va bien. ¿Cuál es la forma correcta de instalar openssl en el sistema?

Nota: El módulo de red Qt tiene su propia lista de autoridades de certificación.

+0

Otros paquetes también usan librerías OpenSSL, por lo que es posible que desee considerar ubicar su versión específica localmente con los binarios de la aplicación. Obtendrá algunos errores extraños si las versiones no coinciden. –

Respuesta

2

Tal vez hay otras dependencias que estos dos archivos DLL tienen que SVN ha instalado para usted ...

Intentar usar depende para ver qué DLL utilizan los DLL de OpenSSL, y asegurarse de que las personas están instalados en su limpia VMware.

+0

De hecho, tenía razón: ssleay.dll depende de msvcr90.dll, que es una biblioteca de tiempo de ejecución de Microsoft, parte de MS Redistributables. – Maleev

+0

El problema ahora es que no sé cómo instalar correctamente esa biblioteca. Intentar registrarlo con regsvr32.exe produce un error (R6034 - smth sobre manifiesto). Pero esa es otra pregunta ... – Maleev

+0

Puede descargar de MS el paquete redistribuible para VC9 ... –

0

¡Es muy probable que dependa de libsasl.dll, que se envía con tortuga-svn!

3

Simplemente ponga las DLL en la carpeta de instalación de su aplicación. No hay nada que registrar (y no se puede usar regsvr32 de todos modos, ya que OpenSSL no implementa servidores ActiveX/COM, que es para lo que está diseñado regsvr32).

0

Puede usar Dependency Walker para verificar qué dependencia tiene su aplicación y cuáles no ha podido resolver.

http://www.dependencywalker.com/

sólo tienes que arrastrar su aplicación a Dependency Walker y en el panel de la izquierda podrás ver todos los archivos DLL que necesita para funcionar.