我很难将openssl添加到我的项目中,我已经下载了windows的预编译安装程序,并且安装了库,但是我找不到一种方法将openssl包含在我的项目中。注意:我在Windows 7 x64上使用Visual Studio Expres 2012,但它不限于该环境。
gfttwv5a1#
简介
它适用于任何OpenSSL 版本(* 版本0.9.、* 版本1.0.、* 版本1.1.、* 版本3.0 *)和任何**VStudio 版本(* 版本2005 *+)
假设您已在如下 * 目录 * 中安装了 OpenSSL:* “C:\程序文件\Openssl-Win32-1.0.1p....."(或任何其他名称);我将把它称为 OPENSSL_INSTALL_DIR(因为它是一个 Nix style env**var)。因此,${OPENSSL_INSTALL_DIR}* 应该包含一堆 dir 和文件,其中对我们很重要:
1.文件(由于它们的名称在不同版本中不同,我将使用(同样,Nix style var)占位符来引用它们;它们也可以位于bin**子目录 * 中):1.${LIBCRYPTO}.dll文件 *1.${LIBSSL}.dll文件 *其中,LIBCRYPTO(#1.)和LIBSSL*(#2.)的定义如下:1.v1.0.2 及更低版本1.libeay321.* ssleay 32 (也可以复制(或 * 符号链接 )到 * libssl 32 )1. 版本1.1.1.libcrypto-1_(-x64)*1.libssl-1_(-x64)*1.* 版本3.0 *1.libcrypto-3*1.libssl-3*顺便提一下,在 Nix 上,这2个文件(.dlls -共享对象)通常命名为 *libcrypto.so.和 *libssl.so.(其中后缀是版本指示符)。为了使用 OpenSSL 安装,在 VStudio 项目中,您必须:
指示它:
要搜索包含(头文件(.h))文件的位置*。请转到“* 项目属性-〉C/C++ -〉常规-〉其他包含目录 ”,然后添加**${OPENSSL_INSTALL_DIR}\include***(如果需要添加其他路径,请用分号(***;***))。现在您可以在源代码中包含 OpenSSL 头文件。
请注意,由于“${OPENSSL_INSTALL_DIR}\include”dir 包含一个 openssl 子目录,而在该子目录下是实际的头文件,因此 #include 子句必须如下所示:
#include <openssl/ssl.h>
当然,您可以将 ${OPENSSL_INSTALL_DIR}\include\openssl**dir 添加到项目中,然后上面的include语句将是:
#include <ssl.h>
但前者是首选(推荐)
在哪里搜索库。你可以通过进入你的“ 项目属性-〉链接器-〉常规-〉附加库目录 ”并添加**${OPENSSL_INSTALL_DIR}\lib***(同样,如果有多个路径,用分隔它们;)要使用的库。“${OPENSSL_INSTALL_DIR}\lib”dir 包含一组 .lib 文件。在这些文件中,您(很可能)只需要${LIBCRYPTO}.lib和/或**${LIBSSL}.lib***。转到“* 项目属性-〉链接器-〉输入-〉附加依赖项 *”,将这两个库添加到现有库旁边
现在,如果所有的设置和源代码都是正确的,那么您就应该拥有一个“可构建”的项目。(另一个可执行文件需要一个 .exe 或一个 .dll,我在这里不讨论您使用 static**lib 的可能性),可执行文件需要找到我在开头提到的2个 .dll。为此,您应该或者:
set PATH=%PATH%;${OPENSSL_INSTALL_DIR}
一些安装程序可能会复制“%SystemRoot%\System32”dir 中的2 .dlls,在这种情况下,这将不再是必要的(我发现这种复制system dirs中的内容的做法是不好的,因为在我们当前的示例中,多个版本可以提供相同的文件名,最后安装的一个将覆盖所有其他的)
重要说明:在将项目定位为 * 032 bit * 或 * 064 bit *(在 VStudio IDE 中将 Platform 设置为 Win32 或 x64)时必须小心-必须与您的 OpenSSL 安装架构相匹配(如果不匹配,请检查[SO]: Python Ctypes - loading dll throws OSError: [WinError 193] %1 is not a valid Win32 application (@CristiFati's answer)以了解(有趣的)错误)。
1szpjjfi2#
自从最初提出这个问题以来,已经发生了很多变化。从那时起,vcpkg沿着,使安装外部库变得容易多了。若要安装和使用vcpkg,请使用下列程式码:
vcpkg
git clone https://github.com/Microsoft/vcpkg cd vcpkg bootstrap-vcpkg.bat vcpkg integrate install
最后一个命令是可选的,但建议用户范围的集成。然后,要安装OpenSsl,请尝试以下操作:
vcpkg search ssl vcpkg install openssl-windows --triplet x64-windows
您的选项可能因平台的具体情况而异。重新启动Visual Studio,您应该可以开始了。使用Visual Studio社区2019进行测试。参考文献:vcpkgvcpkg Quick Start
myss37ts3#
使用柯南。它的安装和使用非常简单:www.conan.io您可以请求准备好使用的文件。例如,对于Linux x64或使用Visual Studio 2012...以下是示例说明:
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" ...
3条答案
按热度按时间gfttwv5a1#
简介
它适用于任何OpenSSL 版本(* 版本0.9.、* 版本1.0.、* 版本1.1.、* 版本3.0 *)和任何**VStudio 版本(* 版本2005 *+)
假设您已在如下 * 目录 * 中安装了 OpenSSL:* “C:\程序文件\Openssl-Win32-1.0.1p....."(或任何其他名称);我将把它称为 OPENSSL_INSTALL_DIR(因为它是一个 Nix style env**var)。因此,${OPENSSL_INSTALL_DIR}* 应该包含一堆 dir 和文件,其中对我们很重要:
1.文件(由于它们的名称在不同版本中不同,我将使用(同样,Nix style var)占位符来引用它们;它们也可以位于bin**子目录 * 中):
1.${LIBCRYPTO}.dll文件 *
1.${LIBSSL}.dll文件 *
其中,LIBCRYPTO(#1.)和LIBSSL*(#2.)的定义如下:
1.v1.0.2 及更低版本
1.libeay32
1.* ssleay 32 (也可以复制(或 * 符号链接 )到 * libssl 32 )
1. 版本1.1.
1.libcrypto-1_(-x64)*
1.libssl-1_(-x64)*
1.* 版本3.0 *
1.libcrypto-3*
1.libssl-3*
顺便提一下,在 Nix 上,这2个文件(.dlls -共享对象)通常命名为 *libcrypto.so.和 *libssl.so.(其中后缀是版本指示符)。
为了使用 OpenSSL 安装,在 VStudio 项目中,您必须:
1.配置编译器([MS.Docs]: Compiler Options Listed Alphabetically)
指示它:
要搜索包含(头文件(.h))文件的位置*。请转到“* 项目属性-〉C/C++ -〉常规-〉其他包含目录 ”,然后添加**${OPENSSL_INSTALL_DIR}\include***(如果需要添加其他路径,请用分号(***;***))。现在您可以在源代码中包含 OpenSSL 头文件。
请注意,由于“${OPENSSL_INSTALL_DIR}\include”dir 包含一个 openssl 子目录,而在该子目录下是实际的头文件,因此 #include 子句必须如下所示:
当然,您可以将 ${OPENSSL_INSTALL_DIR}\include\openssl**dir 添加到项目中,然后上面的include语句将是:
但前者是首选(推荐)
2.配置链接器([MS.Docs]: Linker Options)
指示它:
在哪里搜索库。你可以通过进入你的“ 项目属性-〉链接器-〉常规-〉附加库目录 ”并添加**${OPENSSL_INSTALL_DIR}\lib***(同样,如果有多个路径,用分隔它们;)
要使用的库。“${OPENSSL_INSTALL_DIR}\lib”dir 包含一组 .lib 文件。在这些文件中,您(很可能)只需要${LIBCRYPTO}.lib和/或**${LIBSSL}.lib***。转到“* 项目属性-〉链接器-〉输入-〉附加依赖项 *”,将这两个库添加到现有库旁边
3.构建并运行
现在,如果所有的设置和源代码都是正确的,那么您就应该拥有一个“可构建”的项目。(另一个可执行文件需要一个 .exe 或一个 .dll,我在这里不讨论您使用 static**lib 的可能性),可执行文件需要找到我在开头提到的2个 .dll。为此,您应该或者:
set PATH=%PATH%;${OPENSSL_INSTALL_DIR}
一些安装程序可能会复制“%SystemRoot%\System32”dir 中的2 .dlls,在这种情况下,这将不再是必要的(我发现这种复制system dirs中的内容的做法是不好的,因为在我们当前的示例中,多个版本可以提供相同的文件名,最后安装的一个将覆盖所有其他的)
重要说明:在将项目定位为 * 032 bit * 或 * 064 bit *(在 VStudio IDE 中将 Platform 设置为 Win32 或 x64)时必须小心-必须与您的 OpenSSL 安装架构相匹配(如果不匹配,请检查[SO]: Python Ctypes - loading dll throws OSError: [WinError 193] %1 is not a valid Win32 application (@CristiFati's answer)以了解(有趣的)错误)。
1szpjjfi2#
自从最初提出这个问题以来,已经发生了很多变化。从那时起,
vcpkg
沿着,使安装外部库变得容易多了。若要安装和使用vcpkg,请使用下列程式码:
最后一个命令是可选的,但建议用户范围的集成。
然后,要安装OpenSsl,请尝试以下操作:
您的选项可能因平台的具体情况而异。
重新启动Visual Studio,您应该可以开始了。
使用Visual Studio社区2019进行测试。
参考文献:
vcpkg
vcpkg Quick Start
myss37ts3#
使用柯南。它的安装和使用非常简单:
www.conan.io
您可以请求准备好使用的文件。例如,对于Linux x64或使用Visual Studio 2012...以下是示例说明: