文档章节

VS2010编译OpenSSL

我爱睡觉
 我爱睡觉
发布于 2017/06/24 17:36
字数 650
阅读 19
收藏 0

OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在http://slproweb.com/products/Win32OpenSSL.html 上下载已经编译好的OpenSSL库是省力省事的好办法。对于高级的开发用户,他们可能需要适当的修改或者裁剪OpenSSL,那么编译它就成为了一个关键问题。本篇博客就是主要讲述如何早Windows上编译OpenSSL库?

笔者按照一定的步骤成功了编译了OpenSSL库,步骤如下:

1)在微软网站下载并安装VS Studio,连接如下:http://msdn.microsoft.com/subscriptions/downloads/#searchTerm=&ProductFamilyId=529&Languages=en&PageSize=10&PageIndex=0&FileId=0

2)从http://www.activestate.com/activeperl/downloads 下载并安装ActivePerl。

3)从http://www.nasm.us/ 下载并安装Nasm汇编器。

nasm的安装路径 D:\Program Files (x86)\NASM,需增加到环境变量path中。

4)从http://www.openssl.org/下载并安装OpenSSL的最新Release包。

这里需要强调的是,读者未必需要完全按照笔者的步骤编译OpenSSL库,这里的部分次序是可以互换的。

 

在完成所有上述5步后,我们就可以解压缩OpenSSL包,在对它进行修改便可以编译了。在解压缩后,所有的源代码放在openssl- 1.0.1e目录下,在此目录下,有两个文件INSTALL.W32, INSTALL.W64需要被关注。打开其中的任何一个文件,你会看到如何编译OpenSSL的各个步骤。这里,笔者将会再啰嗦一下。


1)打开VS Studio命令行工具,如图1所示。

若编译32位OpenSSL库,请打开Visual Studio 命令提示(2010)。

若编译64位OpenSSL库,请打开Visual Studio x64 Win64 Command Prompt。

图1

2)配置编译文件及安装目录;

set path=%path%E:\openssl\openssl-1.0.1e;D:\Program Files (x86)\NASM

或 cd E:\openssl\openssl-1.0.1e

         编译Win32:perl Configure VC-WIN32 --prefix=E:\openssl\openssl-1.0.1e\OutDir\32

         编译Win64:perl Configure VC-WIN64A --prefix=E:\openssl\openssl-1.0.1e\OutDir\64

E:\openssl\openssl-1.0.1e\OutDir\XX”目录可以改成任何你希望的安装目录

3)搭建编译环境:

         nasm汇编器:ms\do_nasm

         vc汇编器: ms\do_ms

对于64位编译,将ms\do_ms替换成ms\do_win64a

4)编译OpenSSL

 编译动态库: nmake -f ms\ntdll.mak
 编译静态库: nmake -f ms\nt.mak

5)安装编译生成的库到“E:\openssl\openssl-1.0.1e\OutDir\XX

 测试动态库: nmake -f ms\ntdll.mak test
测试静态库: nmake -f ms\nt.mak test

安装动态库: nmake -f ms\ntdll.mak install
安装静态库: nmake -f ms\nt.mak install


注:若是编译有问题,可以尝试换旧版本来解决。

本文转载自:http://blog.csdn.net/zhangmiaoping23/article/details/52815974

我爱睡觉
粉丝 3
博文 2120
码字总数 0
作品 0
南昌
私信 提问
qt5.8_for_vs2015 and openssl静态编译

关于qt5.8版本的通用编译参考<>,现假定已经静态编译了qt5.8版本,需要追加对openssl的静态编译。 就网络network模块进行编译举例: 1)qt5.8使用的openssl版本为1.0.2,其他平台可以去http:...

py_tty_0529
2018/07/31
0
0
centos7.3编译安装OpenSSL1.1.1b

简介 OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 安装 下载:下载地址 ...

阿dai学长
03/24
144
0
openssl7月9号高危漏洞

Openssl 7月9日发布了 OpenSSL 1.0.2 和OpenSSL 1.0.1 两个主线版本的更新,其中修复了一个高危安全问题(CVE-2015-1793)。 漏洞危害: 特定版本的OpenSSL在证书校验的逻辑中存在安全漏洞,使...

gaolongquan
2015/07/09
115
0
openssl升级1.0.2k及nginx1.14.0编译安装

openssl编译安装 tar -zxvf openssl-1.0.2l.tar.gz ./config --prefix=/usr/local/openssl 注意如果有问题,会显示出来,一般是perl版本问题 make && make install 重命名原来的openssl命令 ...

bz_z
2018/08/30
832
0
在 iOS 中使用 OpenSSL 库

在你的 iOS App中 使用 OpenSSL 库 ——译自x2on的“Tutorial: iPhone App with compiled OpenSSL 1.0.0a Library” 原文地址:http://www.x2on.de/2010/07/13/tutorial-iphone-app-with-co......

鉴客
2012/01/09
7.4K
3

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部