gpt4 book ai didi

c++ - 如何在Visual Studio中包括OpenSSL

转载 作者:太空狗 更新时间:2023-10-29 19:52:03 25 4
gpt4 key购买 nike

我很难将openssl添加到我的项目中。我已经下载了用于Windows的预编译安装程序,并且已经安装了库,但是找不到在我的项目中包含openssl的方法。

注意:我在Windows 7 x64上使用Visual Studio Expres 2012,但不限于该环境。

最佳答案

介绍

  • 尽管问题/答案基于:
  • OpenSSL 1.0.1 *
  • VStudio 2012

  • 它适用于 的任何 OpenSSL版本(v.0.9。*,v1.0。*,v1.1。*,v3.0),以及 的任何 VStudio版本(v2005 +)
  • 还可以在上获得
  • OpenSSL构建。[GitHub]: CristiFati/Prebuilt-Binaries - (master) Prebuilt-Binaries/OpenSSL

  • 假设您已经在目录中安装了OpenSSL,例如:“C:\Program Files\Openssl-Win32-1.0.1p .....”(或任何其他名称);我将其称为 OPENSSL_INSTALL_DIR (因为它是一个环境变量)。因此,%OPENSSL_INSTALL_DIR%应该包含一堆目录和文件,这对我们来说无关紧要:
  • Dirs:
  • 包括
  • lib

  • 文件(由于它们的名称因版本而异,我将使用(Nix样式var)占位符来引用它们;它们也可能位于 bin 子目录中):
  • $ {LIBCRYPTO} .dll
  • $ {LIBSSL} .dll

  • 其中 LIBCRYPTO (#1。)和 LIBSSL (#2。)的定义如下:
  • v1.0.2及更高版本
  • libeay32
  • ssleay32(也可以复制(或符号链接(symbolic link))到libssl32)

  • v1.1。*
  • libcrypto-1 _ *(-x64)
  • libssl-1 _ *(-x64)

  • v3.0
  • libcrypto-3 *
  • libssl-3 *



  • 为了利用它,在您的VStudio项目中,您必须:
    配置编译器( [MS.Docs]: Compiler Options Listed Alphabetically)指示它:
  • 中搜索包含(头(.h))文件。转到“项目属性-> C/C++->常规->其他包含目录”,然后添加%OPENSSL_INSTALL_DIR%\include (如果需要添加其他路径,请用分号将其分隔(; ))。现在,您可以在源代码中包含OpenSSL头文件。请注意,由于“%OPENSSL_INSTALL_DIR%\include”目录包含一个openssl子目录,并且在该子目录下是实际的头文件,因此您的#include子句必须如下所示:
      #include <openssl/ssl.h>
    当然,您可以将%OPENSSL_INSTALL_DIR%\include\openssl目录添加到您的项目中,然后上面的include语句将是:
      #include <ssl.h>
    但建议使用前者(推荐)

  • 配置链接器( [MS.Docs]: Linker Options)指示它:
  • 中搜索库。您可以通过转到“项目属性->链接器->常规->其他库目录”并添加%OPENSSL_INSTALL_DIR%\lib (同样,如果有多个路径,请用; 分隔它们)来完成此操作。
  • 要使用的库。 “%OPENSSL_INSTALL_DIR%\lib”目录包含一堆.lib文件。在这些中,您(很可能)仅需要 $ {LIBCRYPTO} .lib 和/或 $ {LIBSSL} .lib 。转到“项目属性->链接器->输入->其他依赖项”,然后将这2个库添加到现有库的旁边

  • 现在,如果所有设置和源代码正确,那么您应该有一个“可构建”项目。当您想要 运行项目输出(另一个可执行文件所需的.exe或.dll时,我不在这里讨论您使用静态库的可能性),该可执行文件将需要找到2我一开始提到的.dll。为此,您应该 :
  • 将它们复制到可执行文件所在的文件夹中([MS.Docs]: Dynamic-Link Library Search Order)
  • 将它们从%PATH%env var复制到其中一个文件夹中
  • 将其目录添加到您的%PATH%var中。某些安装程序可能会在您的“%SystemRoot%\System32”目录中复制这两个.dll,在这种情况下,这将不再是必需的(我发现这种在系统目录中复制内容的做法很不好,在我们当前的示例中为多个版本可以提供相同的文件名,而最后安装的文件名将覆盖所有其他文件名)

  • 重要说明:将项目定位为32位或64位(在VStudio IDE中将Platform设置为Win32或x64)时必须小心-必须与您的OpenSSL安装体系结构匹配。

    关于c++ - 如何在Visual Studio中包括OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32156336/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com