• VS2015编译OpenSSL


    概述

    OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在 Win32 OpenSSL 上下载已经编译好的 OpenSSL 库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪 OpenSSL,那么编译它就成为了一个关键问题。

    下面,主要讲述如何在 Windows 上使用VS2015编译 OpenSSL 库,如果需要使用其他版本的VS,可以自行选择对应版本的命令行工具进行编译。

    编译环境

    1.我这里使用的是Visual Studio 2015,所以首先肯定是需要安装好对应的开发环境了
    2.下载并安装ActivePerl
    我这里使用的是ActivePerl-5.26.0.2600-MSWin32-x64-403866.ex
    安装完以后,可以使用控制台进入Perl安装目录下的eg,执行 perl example.pl,若是提示 Hello from ActivePerl! 则说明安装Perl成功了。

    3.下载并安装NASM汇编器
    我这里使用的是nasm-2.13.01-installer-x64.exe
    4.下载OpenSSL的源码
    可以去官方网站下载
    我下的是openssl-1.0.2m.tar.gz
    建议使用这个版本,后续新版本可能会导致编译失败。
    下载完毕以后,将源码文件解压缩到自己需要编译的地方即可。可以参考INSTALL.W32和INSTALL.W64两个文件,了解编译openSSL的各个步骤。

    编译步骤

    准备工作做好了,接下来就可以进行具体的编译工作了。
    1.打开命令行工具,定位到openSSL源码所在的目录,我这里是E:opensourceopensslopenssl-1.0.2m
    2.配置openSSL相关信息,我这里设置的是将最后编译成功的各种库文件安装到E:opensourceopenssl目录下,因此输入命令行 perl Configure VC-WIN32 --prefix=E:opensourceopenssl

    3.执行汇编编译,在命令行中输入 msdo_nasm

    4.选择目标VS版本,我这里使用的是VS2015。将控制台定位置VS2015安装目录VCin,然后执行vcvars32.bat批处理文件,即选择当前版本作为编译程序。

    5.将控制台重新定位到openSSL源码所在的目录,这里有两种选择
    动态库版本输入

    nmake -f ms
    tdll.mak
    

    静态库版本输入

    nmake -f ms
    t.mak
    


    编译成功结束以后,会在openSSL源码目录下新生成out32dll文件夹,里面包含了一些动态库和执行文件。
    6.检测生成的库是否正确,可以通过执行对应的脚本进行检测
    动态库版本输入

    nmake -f ms
    tdll.mak test
    

    静态库版本输入

    nmake -f ms
    t.mak test
    

    若最终在终端显示 passed all tests 则表示生成的库是正确的

    7.编译结束后,可以执行对应的脚本,将openSSL安装到目标位置
    动态库版本输入

    nmake -f ms
    tdll.mak install
    

    静态库版本输入

    nmake -f ms
    t.mak install
    
    


    执行结束以后,会在第一步设置的安装路径下生成bin、include、lib和ssl四个文件夹
    openSSL编译、安装步骤到此结束。

    注意

    1.以上编译步骤对应的是Release版本,如果需要编译Debug版本,则只需要将第二步中的VC-WIN32修改为debug-VC-WIN32即可
    2.若想生成不带会变支持的库,则需要在第二步执行perl Configure VC-WIN32 no-asm --prefix=E:opensourceopenssl,并将第三步改为msdo_ms即可。

    资源备用地址

    我将需要的工具放在了百度云盘上,有需要的可以直接从上面获取
    地址
    提取码 didw

  • 相关阅读:
    JPA总结——实体关系映射(一对多@OneToMany)
    JPA——映射持久化对象(Entity)
    jackson annotations注解详解
    Spring Data JPA
    Spring Data JPA初使用
    Spring注解Annotion详解
    JPA概要
    The requested resource is not available错误
    Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签
    Spring——Eclipse上安装springsource-tool-suite与jar包详解
  • 原文地址:https://www.cnblogs.com/sanghg/p/8465474.html
Copyright © 2020-2023  润新知