[转] Windows下编译OpenSSL
简述
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在Win32 OpenSSL上下载已经编译好的OpenSSL库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪OpenSSL,那么编译它就成为了一个关键问题。下面主要讲述如何在Windows上编译OpenSSL库。
步骤
- 在微软网站下载并安装Visual Studio,我用的是2013版。
- 下载并安装ActivePerl。
下载地址:http://www.activestate.com/activeperl/downloads
打开命令提示符,将其定位到D:\Program Files\Perl\eg目录下,执行 perl example.pl,若提示:Hello from ActivePerl! 则说明Perl安装成功,可以开始使用Perl的相关命令来进行OpenSSL的安装了。 - 下载并安装Nasm汇编器,并将D:\Program Files\NASM添加到系统环境变量Path中。
下载地址:http://www.nasm.us/ - 下载并安装OpenSSL。
下载地址:http://www.openssl.org/。
Github: https://github.com/openssl/openssl - 如果没安装VS (版本不低于VS2008),则需要先安装VS。我安装的是VS2012。
然后添加Path环境变量: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
在完成所有上述步骤,我们就可以解压缩OpenSSL包(解压至:E:\openssl-1.0.2h
),在对它进行修改便可以编译了。解压后的目录中有两个文件INSTALL.W32、INSTALL.W64需要被关注。打开其中任何一个文件,你会看到如何编译OpenSSL的各个步骤。
- 将命令提示符定位到 E:\openssl-1.0.2h。
- 输入 perl Configure VC-WIN32 --perfix=E:\OpenSSL (将其安装到E:\OpenSSL)。
- 输入 ms\do_nasm 。
- 将命令提示符定位到 D:\Program Files\Microsoft Visual Studio 12.0\VC\bin, 然后输入 vcvars32.bat(如果没有这一步,会提示nmake不是内部或外部命令)。
- 再次将命令提示符定位到 E:\openssl-1.0.2h。
- 输入 nmake -f ms\ntdll.mak,执行完后会在openssl-1.0.2h目录下生成一个out32dll的文件夹,里面包含了一些静态库、动态库和.exe文件。
- 输入 nmake -f ms\ntdll.mak test,若最终显示passed all tests说明生成的库正确。
- 输入nmake -f ms\ntdll.mak install,则会在E:\OpenSSL目录下生成bin、include、lib、ssl四个文件夹。
- 64位编译:
运行 configure:
perl Configure VC-WIN64A 或 perl Configure debug-VC-WIN64A
创建Makefile文件:注意路径中的斜线。
ms\do_win64a
编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak - 32位编译:
运行configure:
perl Configure VC-WIN32 或 perl Configure debug-VC-WIN32
创建Makefile文件:注意路径中的斜线。
ms\do_ms
编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak
注意:
以上编译的是release库,若编译debug库,则将以上第2步中的
VC-WIN32
改成debug-VC-WIN32
即可。若编译静态库,则用
ms\nt.mak
替换掉上面用到的ms\ntdll.mak
即可。若生成不带汇编支持的库,则需将以上第2、3步用
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL
和ms\do_ms
替换即可。在
E:\openssl-1.0.2h\tmp32dll
文件夹下包含相应的汇编文件。
更多参考
原文链接: http://blog.csdn.net/liang19890820/article/details/51658574
[转] Windows下编译OpenSSL的更多相关文章
- 在Windows下编译OpenSSL(VS2005和VC6)
需要说明的是请一定安装openssl-0.9.8a . openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...
- Windows下编译OpenSSL(使用VS2013)
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- Windows下编译openssl
依赖工具: 1.VS 2.perl 编译方法: release: :\> 切换到openssl目录 :\> perl Configure VC-WIN32 no-asm --prefix= ...
- Windows下安装OpenSSL及其使用
方法一: Windows binaries can be found here: http://www.slproweb.com/products/Win32OpenSSL.html You can ...
- Windows下编译 Hadoop
Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...
- Windows下编译objective-C
Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode 目录 ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- windows下编译java源文件的编码错误
import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...
随机推荐
- [Erlang 0118] Erlang 杂记 V
我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下. 做笔记 一开始笔记软件做的不好的时候就发邮件给自己, ...
- Squirrel: 通用SQL、NoSQL客户端
安装 配置数据库 配置驱动 配置连接 如果你的工作中,需要使用到多个数据库,又不想在多种客户端之间切换来切换去.那么就需要找一款支持多数据库的客户端工具了.如果你要连接多个关系型数据库,你就可以使用N ...
- 统计分析中Type I Error与Type II Error的区别
统计分析中Type I Error与Type II Error的区别 在统计分析中,经常提到Type I Error和Type II Error.他们的基本概念是什么?有什么区别? 下面的表格显示 b ...
- 理解Docker(4):Docker 容器使用 cgroups 限制资源使用
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Practical oral English
1.如果你继续发烧,我就去请医生过来If your fever continues, I'll send for the doctor.2.在这么大的停车场里,我是永远都找不到我的车的I'll nev ...
- JSP动作元素——————实践篇
本篇在理论的基础上实现不同JSP页面间的跳转 使用 Eclipse Java EE IDE 创建一个新的 Java Web 项目,具体步骤如下: (1)启动 Eclipse Java EE IDE,在 ...
- 常用的14种HTTP状态码速查手册
分类 1xx \> Information(信息) // 接收的请求正在处理 2xx \> Success(成功) // 请求正常处理完毕 3xx \> Redirection(重定 ...
- 初入网络系列笔记(5)FTP协议
一.借鉴说明,本博文借鉴以下博文 1.锤子,FTP协议,http://www.cnblogs.com/loadrunner/archive/2008/01/09/1032264.html 2.suna ...
- NHibernate之映射文件配置说明
NHibernate之映射文件配置说明 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表 ...
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查
前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...