Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库,
包含以下八个版本:
1、32位、debug版LIB;
2、32位、release版LIB;
3、32位、debug版DLL;
4、32位、release版DLL;
5、64位、debug版LIB;
6、64位、release版LIB;
7、64位、debug版DLL;
8、64位、release版DLL; http://download.csdn.net/detail/yaojingkao/9673763
具体编译方法请看我的博客:http://blog.csdn.net/YAOJINGKAO/article/details/53041165
-------------------------------------------------------------------------------------

首先本文参考了以下网页,感谢!

http://www.jianshu.com/p/4522f17ce2ff和 
http://developer.covenanteyes.com/building-openssl-for-visual-studio/

首先要知道:

编译release版本和debug版本一般只要一个能编译通过,另一个也不会存在问题的。所以以下尽量精简文章长度,最后附有编译所需的所有命令行。

1、准备工作:

  • 1)下载安装编译必须的ActivePerl:http://www.activestate.com/activeperl/downloads 
    有说法说StrawbarryPerl也行,我没试过就不知道能不能成功了

  • 2)下载最新的openssl源码:https://www.openssl.org/source/ 
    我这里下载的是2016年11月4日最新的openssl 1.0.2j版本。然后解压至C盘根目录,形成如下目录结构: 
    C:\openssl-1.0.2j\include

2、设置VC编译环境【编译32位64位有区别】

以下所有操作都是在【VS2015开发人员命令提示】中进行的,具体位置一般是【开始->所有程序->Visual Studio 2015-> Visual Studio Tools】下;

1. 【编译32位openssl】
命令如下:
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
vcvars32.bat
2. 【编译64位openssl】
命令如下:
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
vcvars64.bat

3、配置编译文件和类型【编译32位64位有区别】

注意: 
如果不是想单独拿编译好的库出来用,而是需要交叉编译,比如接着编译libcurl,则可以使用如下命令全部一次性编译32位所有版本的库:

ms\32all.bat no-asm

实际我在通过这条命令编译的时候,也会编译失败无法继续; 
如果想要交叉编译libcurl,还是用libcurl\project\build-openssl.bat更好。 
目前我已经通过这个文件成功交叉编译了libcurl with openssl gzip的release版本的lib, 
详细方法请参考我的博客:http://blog.csdn.net/yaojingkao/article/details/53044361

如果只是想编译OpenSSL,请接着看下面: 
1)先进入openssl-1.0.2j目录

cd C:\openssl-1.0.2j

2)配置输出目录和编译类型【编译32位、64位;release、debug有区别】 
命令格式如下:

perl Configure [类型] no-asm --prefix="[输出目录]"
  • 1
  • 1
  • [编译类型]可以选择以下:
参数 含义
debug-VC-WIN32 编译32位debug版本
VC-WIN32 编译32位release版本
debug-VC-WIN64A 编译64位debug版本
VC-WIN64A 编译64位release版本
  • [输出目录]理论任何地方都可以。自己确定好就行

  • 3)配置模式:

    1. 【编译32位openssl】 
      命令如下:

      ms\do_ms.bat
      • 1
      • 1
    2. 【编译64位openssl】 
      命令如下:

      ms\do_win64a.bat
      • 1
      • 1

      执行这一步之后,在ms目录下会生成nt.mak和ntdll.mak两个编译配置文件 
      nt.mak 用于生成静态lib库 
      ntdll.mak 用于生成动态dll库

4、编译【编译静态库、动态库有区别】

  • 【编译openssl静态链接库】 
    命令如下:
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  • 【编译openssl动态链接库】 
    命令如下:
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  • 执行test命令可以测试编译好的库,测试成功了就可以运行install命令,运行完之后才会在输出目录中找到输出的编译好的库和加入工程时必要的include文件。 
    需要注意的地方:

1)设置编译类型的时候千万别忘记no-asm参数,关闭汇编模式,否则会出现类似如下错误:

Assembling: tmp32\sha1-586.asm
tmp32\sha1-586.asm(1427) : error A2070: invalid instruction operands
tmp32\sha1-586.asm(1571) : error A2070: invalid instruction operands
NMAKE : fatal error U1077: 'ml' : return code '0x1'
Stop.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

2)设置VC编译环境的时候,注意有32位和64位的区别,网络上大多数是因为没有注意这个导致编译失败。

最后附上编译所需的所有命令(一个例子):

openssl目录:c:\openssl-1.0.2j\ 
以编译64位release版本的dll为例子:

cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
vcvars32.bat
perl Configure VC-WIN64A no-asm --prefix="c:\openssl-1.0.2j\build-vc14-debug-win64-dll"
ms\do_win64a.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install
nmake -f ms\ntdll.mak clean

至此,就可以将c:\openssl-1.0.2j\build-vc14-debug-win64-dll目录复制到需要使用的地方就可以使用了。

最后,附上一个我编译好的VS2015版本的openssl(1.0.2j)所有库,共八个链接库。 
下载地址:http://download.csdn.net/detail/yaojingkao/9673763

Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)的更多相关文章

  1. 最新精品 强势来袭 XP,32/64位Win7,32/64位Win8,32/64位Win10系统【国庆版版】

    本系统是10月最新完整版本的Windows10 安装版镜像,Win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为Win10 Edge浏览器中国默认主页和搜索引擎,系 ...

  2. 最新精品 强势来袭 XP,32/64位Win7,32/64位Win10系统【电脑城版】

    随着Windows 10Build 10074 Insider Preview版发布,有理由相信,Win10离最终RTM阶段已经不远了.看来稍早前传闻的合作伙伴透露微软将在7月底正式发布Win10的消 ...

  3. 【全网首发】使用vs2017+qt5.12.4编译64位debug和release的qgis3.4.9

    一.摘要: 搜索网络没有发现一篇文章完整的介绍如何编译qgis3.4.x的debug版本,官方的指导也长时间不再更新. 所以前前后后花了4天搞定qgis的debug编译,并成功运行,废话不多说,直接上 ...

  4. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  5. win7下解决vs2015新建项目,提示“未将对象引用设置到引用实例“的问题

    问题描述: 打开vs2015新建c++项目时,出现有如下内容的对话框“未将对象引用设置到引用实例”的提示 解决方法: 1.  温馨提示:千万不要一冲动,就去卸载vs2015!! win7下安装vs20 ...

  6. win7下使用cygwin编译VLC

     win7下使用cygwin编译VLC http://kathy.blog.51cto.com/1168050/295460 2010-04-15 14:54:01 标签:编译 休闲 VLC 职场 w ...

  7. 在CUDA8.0下指定位置编译安装OpenCV3.1.0来实现GPU加速(Compiling OpenCV3.1.0 with CUDA8.0 support)

    在CUDA8.0下指定位置编译安装OpenCV3.1.0 一.本人电脑配置:ubuntu 14.04, NVIDIA GTX1060. 二.编译OpenCV3.1.0前,读者需要成功安装CUDA8.0 ...

  8. 【Win7激活工具2013版下载】适用于旗舰版、家庭高级版等所有版本32/64位 OEM激活

    虽然现在Win8已经发布了,但是身边总是还有一些朋友在用着Win7系统,而近期微软频繁的推送补丁包,导致之前的那些激活都失效了.找了网络上很多工具,之前的那些有的已经不能用了,激活不了,今天就推荐一些 ...

  9. XP,32/64位Win7,32/64位Win8,32/64位Win10系统 【春节版】

    本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎 ...

随机推荐

  1. CSS3伪类选择器 图示

         

  2. today's learning of english 2

    1..fumbling    缓慢 笨拙的 2.dancing with impatience in the chekout line sighed exasperation        在安全线外 ...

  3. SQL Server通过整理索引碎片和重建索引提高速度

    本文章转载:http://database.51cto.com/art/201108/282408.htm SQL Server数据库中,当索引碎片太多时,就会拖慢数据库查询的速度.这时我们可以通过整 ...

  4. Bigcommerce:intershop编程经验总结

    1.修改或者添加网页Title,Keywords,Decoration的代码: $full_url = $_SERVER['REQUEST_URI'];  //获取请求的url $letter = s ...

  5. 百度地图api之如何自定义标注图标

    在百度地图api中,默认的地图图标是一个红色的椭圆形.但是在项目中常常要求我们建立自己的图标,类似于我的这个 操作很简单,分如下几步进行 步骤一:先ps一个图标,大小要合适,如果要背景透明的,记得保存 ...

  6. Android(java)学习笔记248:ContentProvider使用之虚拟短信

    1.虚拟短信应用场景:   急着脱身?应付老婆(老公.男女朋友查岗)?   使用虚拟通话短信吧.您只需通过简单设置,软件就会在指定时间会模拟一个“真实”来电或短信来迷惑对方,通过“真实”的证据让对方相 ...

  7. 1_Linux_目录简介

    1. Linux中所以内容以文件形式保存,包括硬件,所以在用命令行配置文件时,该配置仅仅是临时生效.   2. Linux不靠扩展名区分类型,而是靠文件权限.之所以有扩展名是为了便于管理. .rpm二 ...

  8. ASP.NET生成压缩文件(rar打包)

    首先引用ICSharpCode.SharpZipLib.dll,没有在这里下载:http://files.cnblogs.com/files/cang12138/ICSharpCode.SharpZi ...

  9. 使用WMI来连接远端计算机

    1. wmi连接前提 利用wmi来连接远端计算机首先要具有远端计算机管理员的用户名和密码.如果计算机在域中的话,要有域管理员用户名和密码,或者是把域帐户加入本机管理员组中也可以. 2. 相关类的用法- ...

  10. Android打开系统的Document文档图片选择

    打开Document UI 过滤图片 private void startAcitivty() { Intent intent = new Intent(); intent.setAction(&qu ...