• windows下 使用vs command tools 和mingw 分别编译 openssl


    openssl版本: openssl-1.1.1

    一:用windows 编译openssl

    1: 下载openssll源码, 至少1.1.0版本以上

    2: 下载perl, 本人机器64位, 所以下载了64位的版本 并安装, 安装好以后, 设置系统path环境变量:

    环境变量设置好以后, 打开一个新的cmd, 输入命令: perl -v, 如果有输出信息代表安装成功. 这里安装完perl以后再安装一下dmake, 不然后续执行perl命令的时候, 会提示没有安装dname或者nmake,网上有一种说法是不安装dname, 把vs的nmake目录设置一下系统环境变量也行, 具体读者自行测试一下吧. 我设置了vs的nmake环境变量, 也同时安装了dname. 安装dmake的方式具体如下:

    打开控制台 ,输入:cpan
    在cpan控制台下:
    cpan> install dmake
    然后,将 dmake.exe 加入 PATH 环境变量。

    最后的结果:

    3: 下载Nasm 汇编器, 并安装, 要下载和系统位数一样的安装包. 安装好以后将安装目录的nasm添加到系统环境变量中:

    4: 开始编译, 本人本机安装的是vs 2017, 就拿vs 2017举例了. 打开vs 2017 编译命令行,如下图所示, 这里要注意了, 有这么多命令行, 我们要选的就是画红框的那两个, 一个是编译x64 native tools 是编译64位的, x86 native tools是编译32位的:

    定位到openssl源码目录:

    编译32位
    perl configure VC-WIN32 no-shared --prefix=E:openssluild32 --openssldir=E:openssluildSSL

    编译64位
    perl configure VC-WIN64A no-shared --prefix=E:openssluild32 --openssldir=E:openssluildSSL

    说明:
    no-shared 参数是编译成静态库, 不加的话默认编译成动态库, 不过生成动态库的同时也会生成静态库
    --prefix 参数指定最后的安装目录, 供openssl install所用,
    --openssldir 参数是最后SSL的存放位置, 里面会有一些配置信息等.
    以上参数说明具体可以看Configure, NOTEW_WIN文件说明 .当然还有其它参数说明,

    生成makefile文件后, 下面就一样了:
    nmake
    nmake test, //这条命令可以不执行
    nmake install

    最后执行清除, 目的是删除之前编译生成的文件, 可以重新编译下一个平台了
    nmake clean

    二: 用mingw编译openssl

    不过还是先建议搜一些msys, msys2, mingw mingw64的资料看一下, 我用的是msys2+mingw64+mingw32编译的

    网上有好多方法,但是介绍一下我的方法:

    1: 安装环境, 安装msys2 //https://www.msys2.org,

    安装好以后, 会在安装目录下有三个关键的文件:

    mingw32.exe mingw64到开到相应的环境中.

    msys2_shell.cmd是msys2的管理工具,

    2: 安装mingw64 mingw32 make

    运行msys2_shell.cmd

    输入: pacman -Sl | grep gcc

    找到响应的包,然后安装, 见下图:

     用同样的命令安装 mingw-w64-i686-gcc

    安装make :

    pacman -S make

    最后用命令pacman -Q -e 查看一下是否安装完毕:

     3: 编译:

    打开对应的mingw32 , mingw64, 分别编译32位 64位, 命令如下:

     ./Configure mingw64 --prefix=/opensslild64 --openssldir=/opensslild64/SSL
     ./Configure mingw --prefix=/opensslild32 --openssldir=/opensslidl32/SSL

    说明: 默认动态库, 指定no-shared选项,生成静态库

    4: make

    5: make install

    6: make clean

  • 相关阅读:
    关于架构,关于系统,关于合作,我也得问问我们自己
    vs2013 无法打开 源 文件 "SDKDDKVer.h"
    视频基础知识汇总
    python gRPC接口调用
    python多线程同时执行2个函数任务之threading
    git基本操作_快速查询
    pycharm激活码 我是搬运工
    CodeReview的一些原则
    python多线程执行同一个函数任务之threading、ThreadPoolExecutor.map
    python程序超时处理 timeout_decorator
  • 原文地址:https://www.cnblogs.com/priarieNew/p/13467296.html
Copyright © 2020-2023  润新知