c++ visual-studio-2012 openssl

c++ - Cómo incluir openssl en Visual Studio Expres 2012 Windows 7 x64



visual-studio-2012 (2)

Usa Conan. Es muy simple de instalar y usar:

www.conan.io

Puede solicitar los archivos listos para su uso. Por ejemplo, para Linux x64 o uso con Visual Studio 2012 ... Aquí una instrucción de muestra:

conan install OpenSSL/1.0.2g@lasote/stable -s arch="x86_64" -s build_type="Debug" -s compiler="gcc" -s compiler.version="5.3" -s os="Linux" -o 386="False" -o no_asm="False" -o no_rsa="False" -o no_cast="False" -o no_hmac="False" -o no_sse2="False" -o no_zlib="False" ...

Me está costando mucho intentar agregar openssl a mi proyecto. He descargado el instalador precompilado para Windows, y tengo las bibliotecas instaladas, pero no puedo encontrar una manera de incluir openssl en mi proyecto.


Supongamos que ha instalado OpenSSL en una carpeta como: C: / Program Files / Openssl-Win32-1.0.1p ..... (o cualquier otro nombre); Voy a referirme a eso como OPENSSL_INSTALL_DIR (ya que era un env var). Por lo tanto, %OPENSSL_INSTALL_DIR% debe contener un grupo de carpetas y archivos que no nos importan: Carpetas:

  • incluir
  • lib

Archivos:

  • libeay32.dll
  • ssleay32.dll (también puede copiarse a libssl32.dll )

Para poder utilizarlo en su proyecto de VC , debe:

  • Indique a su compilador dónde buscar los archivos incluidos. Para ello, vaya a Propiedades del proyecto -> C / C ++ -> General -> Directorios de inclusión adicionales y agregue %OPENSSL_INSTALL_DIR%/include (si necesita agregar otras rutas de acceso, %OPENSSL_INSTALL_DIR%/include con un punto y coma ( ; )). Ahora puede incluir en su código fuente archivos de encabezado openssl. Tenga en cuenta que debido a que %OPENSSL_INSTALL_DIR%/include carpeta contiene una subcarpeta openssl y bajo esa subcarpeta son los archivos de encabezado reales sus cláusulas include deberían tener este aspecto:

    #include "openssl/ssl.h"

    Por supuesto, podría agregar la %OPENSSL_INSTALL_DIR%/include/openssl a su proyecto y, a continuación, la instrucción de inclusión anterior sería:

    #include "ssl.h"

    pero la primera forma es la preferida.

  • Indique a su vinculador dónde buscar bibliotecas. Para ello, vaya a Propiedades del proyecto -> Enlazador -> General -> Directorios de biblioteca adicionales y agregue %OPENSSL_INSTALL_DIR%/lib (nuevamente, si hay varias rutas de acceso separadas por ; )

  • Indique a su vinculador qué bibliotecas usar. %OPENSSL_INSTALL_DIR%/lib contiene un grupo de archivos .lib . De ellos, lo más probable es que solo necesites libeay32.lib y / o ssleay32.lib . Vaya a Propiedades del proyecto -> Enlazador -> Entrada -> Dependencias adicionales y agregue esas 2 bibliotecas al lado de las existentes.

Ahora, si todas sus configuraciones y código fuente son correctos, debe tener un proyecto compilable. Ahora, cuando desee ejecutar la salida de su proyecto (ya sea un ejecutable o un archivo .dll necesario para otro ejecutable, no estoy discutiendo aquí la posibilidad de que esté utilizando las librerías estáticas ), puede que necesite copiar los 2 archivos .dll que Mencioné al principio en una de las carpetas de tu %PATH% env var, o en la carpeta donde está ubicado tu ejecutable, o mejor simplemente %OPENSSL_INSTALL_DIR% a tu %PATH% ; aunque si recuerdo correctamente, el instalador también los copia en su %SystemRoot%/system32 y en ese caso no tendrá que hacer este paso, pero eso es solo un aviso.

Nota importante : debe tener cuidado al dirigir su proyecto a 32 o 64 bits (configurar Platform to Win32 o x64 en VC ); eso tiene que coincidir con su arquitectura de instalación de OpenSSL .