Windows下编译OpenSSL
2018-06-17 22:08:33来源:未知 阅读 ()
简述
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用。对于一般的开发人员而言,在Win32 OpenSSL上下载已经编译好的OpenSSL库是省力省事的好办法。对于高级的开发用户,可能需要适当的修改或者裁剪OpenSSL,那么编译它就成为了一个关键问题。下面主要讲述如何在Windows上编译OpenSSL库。
步骤
-
在微软网站下载并安装Visual Studio(编译需要VC库支持),我用的是2017版。
-
下载并安装ActivePerl。
下载地址:http://www.activestate.com/activeperl/downloads
我下载的是:5.24.1.2402 Windows Installer(EXE)打开命令提示符,将其定位到
C:\Perl64\eg
目录下,执行perl example.pl
,若提示:Hello from ActivePerl!
则说明Perl安装成功,可以开始使用Perl的相关命令来进行OpenSSL的安装了。 -
下载并安装Nasm汇编器,并将
D:\Program Files\NASM
添加到系统环境变量Path中。(注:这一步是因为对于下面要安装的openssl-1.0.2版本,用masm汇编器汇编会出错,因此使用nasm) 下载地址:http://www.nasm.us/pub/nasm/releasebuilds/。我下载的是:nasm-2.14rc0-installer-x64.exe。 -
下载并安装OpenSSL。 下载地址:https://www.openssl.org/source/。 我下载的是:openssl-1.0.2l.tar.gz (SHA256) (PGP sign) (SHA1)
在完成所有上述步骤,我们就可以解压缩OpenSSL包(解压至:D:\openssl-1.0.2l
),在对它进行修改便可以编译了。解压后的目录中有两个文件INSTALL.W32、INSTALL.W64需要被关注。打开其中任何一个文件,你会看到如何编译OpenSSL的各个步骤。
-
将命令提示符定位到D
:\openssl-1.0.2l
。 -
输入
perl Configure VC-WIN32 --prefix=D:\OpenSSL
(将其安装到D:\OpenSSL)。 -
输入ms\do_nasm
-
输入
nmake -f ms\ntdll.mak
,执行完后会在openssl-1.0.2l
目录下生成一个out32dll的文件夹,里面包含了一些静态库、动态库和.exe文件。 -
输入
nmake -f ms\ntdll.mak test
,若最终显示passed all tests
说明生成的库正确。 -
输入
nmake -f ms\ntdll.mak install
,则会在D:\OpenSSL
目录下生成bin、include、lib、ssl四个文件夹。
注意:
-
以上编译的是release库,若编译debug库,则将以上第2步中的
VC-WIN32
改成debug-VC-WIN32
即可。另外一定要注意VC-WIN32大小写不能错。 -
若编译静态库,则用
ms\nt.mak
替换掉上面用到的ms\ntdll.mak
即可。 -
若生成不带汇编支持的库,则需将以上第2、3步用
perl Configure VC-WIN32 no-asm --prefix=D:\OpenSSL
和ms\do_ms
替换即可。 -
在D
:\openssl-1.0.2l\tmp32dll
文件夹下包含相应的汇编文件。 -
第4步编译过程中很可能出现各种未定义或链接失败错误,为了找到需要的文件,需要修改path环境变量,新增lib和include环境变量。 我的改动如下,各位可以根据自己机器环境参照着更改: path新增 D:\visualstudio2017\Common7\IDE;
D:\visualstudio2017\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86;
D:\visualstudio2017\VC\Tools\MSVC\14.10.25017\bin\HostX86\x64;
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;
C:\Program Files\NASM; include内容为 C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared;
D:\visualstudio2017\VC\Tools\MSVC\14.10.25017\includelib内容为 D:\visualstudio2017\VC\Tools\MSVC\14.10.25017\lib\x86;
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\ucrt\x86 -
出现其它奇怪的问题时,建议多搜索。由于这个库十分常用,网上有不少类似问题,我安装时遇到了很多坑,上文中没有一一列出,借助了很多网络上的力量。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 在名称空间中使用using声明和using编译指令 2020-05-29
- C++ 单独编译 2020-05-10
- windows7 + Qt(MSVC2017) + VS2019安装配置 2020-04-25
- G++编译链接的那些事!G++的特殊使用方法[常用] 2020-04-19
- Code::Blocks20.03 编译报错 2020-04-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash