如何在Visual Studio中包括OpenSSL

吉卡马

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

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

克里斯蒂法蒂

介绍



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

  • Dirs:

    • 包括
    • LIB
  • 文件(由于它们的名称因版本而异,我将使用(Nix style var)占位符来引用它们;它们也可能位于bin subdir中):

    • $ {LIBCRYPTO} .dll
    • $ {LIBSSL} .dll


    其中LIBCRYPTO#1。)和LIBSSL#2。)的定义如下:

    • v1.0.2更高版本

      1. libeay32
      2. ssleay32(也可以复制(或符号链接)到libssl32
    • v1.1。*

      1. libcrypto-1 _ *(-x64)
      2. libssl-1 _ *(-x64)
    • v3.0

      1. libcrypto-3 *
      2. libssl-3 *

为了利用它,在您的VStudio项目中,您必须:

配置编译器[MS.Docs]:按字母顺序列出的编译器选项
指示它:

  • 在何处搜索包含(头(.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]:链接器选项
指示它:

  • 在哪里搜索图书馆。您可以通过转到“项目属性->链接器->常规->其他库目录”并添加%OPENSSL_INSTALL_DIR%\ lib来完成此操作(同样,如果有多个路径,请用;分隔它们

  • 使用什么库。%OPENSSL_INSTALL_DIR%\ lib目录包含一堆.lib文件。其中,您(最有可能)仅需要$ {LIBCRYPTO} .lib和/或$ {LIBSSL} .lib转到“项目属性->链接器->输入->其他依赖项”,然后将这2个库添加到现有库的旁边

现在,如果所有设置和源代码都正确,那么您应该有一个“可构建”项目。当您要运行项目输出时(另一个可执行文件所需.exe.dll,我在这里不讨论您使用静态 lib可能性),该可执行文件将需要找到2 我一开始提到的dll对于这一点,你应该要么

  • 将它们复制到可执行文件所在的文件夹中([MS.Docs]:Dynamic-Link库搜索顺序

  • 将它们从%PATH% env var复制到其中一个文件夹中

  • 将其目录添加到您的%PATH% var中
    一些安装程序可能会在您的“ %SystemRoot%\ System32目录中复制2个.dll,在这种情况下,这将不再需要(我发现这种在系统目录中复制内容的做法很糟糕,如当前示例所示)多个版本可以提供相同的文件名,而安装的最后一个将覆盖所有其他文件)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2015中创建的VSIX中调试Visual Studio包

如何在Visual Studio正则表达式中捕获任何字符(包括\ n)

如何在Visual Studio的发布配置文件中包括动态生成的文件

如何在PHP的Visual Studio Code中选择包括$在内的整个变量名?

如何在Visual Studio Code中跳过断点?

如何在Visual Studio中保存图片?

如何在Visual Studio中使用IntelliCode?

如何在Visual Studio中发布.net核心项目,包括视图和区域文件夹

如何使Visual Studio Intellisense建议“包括”?

如何在Visual Studio中使用PhoneGap

如何在Visual Studio中更改“许可给”?

如何在Visual Studio中升级ReSharper?

如何在Visual Studio中获取行号

如何在Visual Studio 2012中添加NHunspell词典?

如何在Visual Studio中添加新的任务列表项?

在Visual Studio 2012中包括头文件

如何在Visual Studio 2012应用程序中包括.cat和.inf文件

如何在Visual Studio中的表单中创建表

如何在Visual Studio 2010中制作包括Excel模板文件的.exe安装程序

我如何在Visual Studio中的模拟器上测试应用程序而又不将应用程序的项目包括在解决方案中?

如何在wix文件中包括热量的输出?(没有Visual Studio项目)

如何在C ++中的Visual Studio 2010中添加.a文件

如何在Visual Studio中使用Startswith

如何在Visual Studio上进行协作

如何在 Visual Studio 中集成项目

如何在visual studio中调试python

如何在visual studio中显示模板的静态类成员?

如何在 Visual Studio 2017 中使 != 变为 ==

如何在 Visual Studio 上搜索标签