zoukankan      html  css  js  c++  java
  • windows环境下VS2013编译openSSL

    openssl版本:1.0.2h

    编译器:MSVC (VS2013)

    需要准备工具:perl。

    windows环境的perl下载请戳这里:http://www.activestate.com/activeperl

    打开VS2013的x86 Native command prompt(编译的是32位版本),并切换到ssl的解压根路径:

    perl Configure VC-WIN32 --prefix=C:Build-OpenSSL-VC-32           #release版本用VC-WIN32 debug版本用debug-VC-WIN32

    msdo_ms.bat
    nmake -f msnt.mak
    nmake -f msnt.mak install

    运行之上命令,结果出错:

    ssembling: tmp32sha1-586.asm

    tmp32sha1-586.asm(1432) : error A2070:invalid instruction operands

    tmp32sha1-586.asm(1576) : error A2070:invalid instruction operands

     

    然后原因追查到这里:https://github.com/openssl/openssl/issues/169

    看了之后才明白,原因是原来do_ms.bat  编译汇编是用的MASM编译器,MASM编译sha1-586.asm文件的时候出错了。issue上面有人说说不要用masm编译,换成NASM编译,

    然后我再从NASM的官网下载了NASM,配上环境变量,运行以下命令:

    perl Configure VC-WIN32 --prefix=C:Build-OpenSSL-VC-32           #release版本用VC-WIN32 debug版本用debug-VC-WIN32

    msdo_nasm.bat
    nmake -f msnt.mak
    nmake -f msnt.mak install

    然后就能编译成功了。

    references: 

    http://developer.covenanteyes.com/building-openssl-for-visual-studio/

    https://github.com/openssl/openssl/issues/169

    http://stackoverflow.com/questions/12850607/initializing-big-numbers-with-constants-in-masm

  • 相关阅读:
    Javaweb 第4 天xml 课程
    Javaweb 第2天 JavaScript课程
    Javaweb 第1天 HTML和CSS课程
    第27天反射(解剖)技术
    Ip 讲解
    第26 天网络编程
    第25天多线程、网络编程
    【剑指offer】连续子数组的最大和,C++实现
    [剑指offer]数组中最小的K个数,C++实现
    【剑指offer】数组中出现次数超过数组长度一半的数字,C++实现
  • 原文地址:https://www.cnblogs.com/foohack/p/5622965.html
Copyright © 2011-2022 走看看