ActivePerl、dmake、nasm、nmake编译OpenSSL(1.1.0系列)

开篇提示:本文为本人原创,本文欢迎转载,但必须注明本文出处,例如:
[plain]  view plain  copy
 print ?
  1. “该文引用自 CruiseYoung的:“ActivePerl、dmake、nasm、nmake编译OpenSSL(1.1.0系列)”    
  2. http://blog.csdn.net/fksec/article/details/52667055”    
否则说明阁下愿意支付以100元人民币每字计的稿费,敬请留意。

注1 :本文基于Win x64位平台来讲解,x86基本相同:

注2:ActivePerl、nasm、nmake编译OpenSSL(1.0.1系列):http://blog.csdn.net/fksec/article/details/25969257

1 下载软件包

1.1 ActivePerl(x64):http://www.activestate.com/activeperl/downloads
1.2 nasm(x64):http://www.nasm.us/
1.3 zlib编译见“nmake、cmake、Visual Studio编译zlib”:http://blog.csdn.net/fksec/article/details/25906419
1.4 OpenSSL:http://www.openssl.org/source/
      代码托管地址:https://github.com/openssl/openssl(在Tags中选对应版本进行下载,否则静态版本能编译通过,而动态版本编译不能通过)

2 准备工作

2.1 阅读:
2.1.1 编译方法
README
NOTES.WIN
Configurations\README
Configurations\windows-makefile.tmpl
2.1.2 编译选项
文件INSTALL
--with-zlib-include=DIR
--with-zlib-lib=LIB
zlib
zlib-dynamic
2.1.3 编译配置(方式)
文件INSTALL
注意以下内容:
[plain]  view plain  copy
 print ?
  1. $ perl d:\PATH\TO\OPENSSL\SOURCE\Configure {{ target }} [[ options ]]  
  2.   
  3. --prefix=OpenSSL  
  4. --openssldir=SSL  
  5. --with-zlib-include=DIR  
  6. --with-zlib-lib=LIB  
  7. zlib  
  8. zlib-dynamic  
  9. --debug  
  10. --release  (default)  
  11. no-shared  
  12. no-threads (default)  
  13. threads  
  14.   
  15. on Windows (only pick one of the targets for configuration):  
  16. $ perl Configure { VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE }  
  17. $ nmake  
  18. $ nmake test  
  19. $ nmake install  
2.2 编译环境:点击“开始”-->"所有程序"-->"Visual Studio 2013"-->"Visual Studio Tools"-->"VS2013 x64 本机工具命令提示" 
2.3 编译前工具安装(openssl-1.1.0系列):
2.3.1 安装nasm,下载链接http://www.nasm.us/
安装后,右击“我的电脑”-->属性-->高级-->环境变量-->系统变量-->path项添加:
[plain]  view plain  copy
 print ?
  1. D:\Tools\NASM  
2.3.2 安装ActivePerl
2.3.2.1 安装ActivePerl
2.3.2.1 安装dmake(必须在联网的情况下),点击“开始”-->"所有程序"-->"Visual Studio 2013"-->"Visual Studio Tools"-->"VS2013 x64 本机工具命令提示" :
[plain]  view plain  copy
 print ?
  1. ppm install dmake  
2.4 解压“openssl-1.1.0a.tar.gz”到当前文件夹,如得到“openssl-1.1.0a.tar”文件则再次解压“openssl-1.1.0a.tar”到当前文件夹,用以下命令切换到“openssl-1.1.0a”目录

3 Release编译

3.1 运行configure:
如果编译“openssl-1.1.0a”,执行:
[plain]  view plain  copy
 print ?
  1. cd /d E:\Projects\compile\openssl-1.1.0a  
  2.   
  3. perl Configure VC-WIN64A --release --prefix=D:\comm\openssl\release_x64 --openssldir=D:\comm\ssl\release_x64  
  4.   
  5. perl Configure VC-WIN64A --release --prefix=D:\comm\openssl\release_x64 --openssldir=D:\comm\ssl\release_x64 zlib --with-zlib-include=D:\comm\zlib\release_x64\include --with-zlib-lib=D:\comm\zlib\release_x64\lib\zdll.lib  
  6.   
  7. perl Configure VC-WIN64A --release --prefix=D:\comm\openssl\release_x64 --openssldir=D:\comm\ssl\release_x64 zlib-dynamic --with-zlib-include=D:\comm\zlib\release_x64\include --with-zlib-lib=D:\comm\zlib\release_x64\lib\zdll.lib  
注1:如果不需引入“zlib”库,则请用第1条perl命令;
注2:如果引入“zlib”静态库,则请用第2条perl命令;此方式适用于“zlib”一个工程内只有“OpenSSL”库用到或通过“OpenSSL”库用到“zlib”库的功能;这种方式编译需要修改openssl-1.1.0a\configdata.pm和openssl-1.1.0a\makefile两个文件,搜索 “/MD” 字符串,替换成 “/MT”, 这将导致静态链接 C 运行,避免了在目标机器上安装 VC 再发行包等等操作。
注3:如果引入“zlib”动态库,则请用第3条perl命令;此方式适用于所有情况;
注4:约定:本文“OpenSSL”静态库库引入“zlib”静态库,“OpenSSL”动态库引入“zlib”动态库;

3.2 编译、测试、安装、清除上次的编译以便重新编译:

[plain]  view plain  copy
 print ?
  1. nmake all  
  2. nmake install  
  3. nmake distclean  

4 Debug编译

4.1 运行configure:
如果编译“openssl-1.1.0a”,执行:
[plain]  view plain  copy
 print ?
  1. cd /d E:\Projects\compile\openssl-1.1.0a  
  2.   
  3. perl Configure VC-WIN64A --debug --prefix=D:\comm\openssl\debug_x64 --openssldir=D:\comm\ssl\debug_x64  
  4.   
  5. perl Configure VC-WIN64A --debug --prefix=D:\comm\openssl\debug_x64 --openssldir=D:\comm\ssl\debug_x64 zlib --with-zlib-include=D:\comm\zlib\debug_x64\include --with-zlib-lib=D:\comm\zlib\debug_x64\lib\zdll.lib  
  6.   
  7. perl Configure VC-WIN64A --debug --prefix=D:\comm\openssl\debug_x64 --openssldir=D:\comm\ssl\debug_x64 zlib-dynamic --with-zlib-include=D:\comm\zlib\debug_x64\include --with-zlib-lib=D:\comm\zlib\debug_x64\lib\zdll.lib  
注1:如果不需引入“zlib”库,则请用第1条perl命令;
注2:如果引入“zlib”静态库,则请用第2条perl命令;此方式适用于“zlib”一个工程内只有“OpenSSL”库用到或通过“OpenSSL”库用到“zlib”库的功能;这种方式编译需要修改openssl-1.1.0a\configdata.pm和openssl-1.1.0a\makefile两个文件,搜索 “/MDd” 字符串,替换成 “/MTd”, 这将导致静态链接 C 运行,避免了在目标机器上安装 VC 再发行包等等操作。
注3:如果引入“zlib”动态库,则请用第3条perl命令;此方式适用于所有情况;
注4:约定:本文“OpenSSL”静态库库引入“zlib”静态库,“OpenSSL”动态库引入“zlib”动态库;

4.2 编译、测试、安装、清除上次的编译以便重新编译:
[plain]  view plain  copy
 print ?
  1. nmake all  
  2. nmake install  
  3. nmake distclean  

5 如果不想编译,直接下载OpenSSL安装包

Binary Distributions:http://www.openssl.org/related/binaries.html
OpenSSL for Windows:http://www.slproweb.com/products/Win32OpenSSL.html

6 参考文章

在 Windows下用 Visual Studio 编译 OpenSSL 1.1.0:http://www.cnblogs.com/chinalantian/p/5819105.html
windows下安装perl模块方法和必备软件nmake dmake devcpp: 方式一: 将 nmake.exe 放到system32目录下 用一下方式: perl Makefile.pl nmake nmake test nmake install 如果成功,将不用看下面内容。 方式二: 手动编译方式 优点:通吃所有模块 缺点:有点麻烦 具体步骤:1安装编译器2设置编译器的环境变量3可能安装dmake 具体方法:如下 1.首先要有个c编译器,推荐dev-cpp(开源免费的,网上自己搜索),记得要下含有mingw的就是了(不懂c,下载含有mingw的因为这个版本的bin目录里有gcc.exe等工具). 1.1安装好了编译器之后,要能在cmd中以命令方式运行的话,必须要设置环境变量,在winxp中[我的电脑]->[属性]->[高级]->[环境变量]里设置,只需要在path里加个你路径,比如你的安装路径是c:\dev-cpp,那你就要加上c:\dev-cpp\bin (path中有很多其他的路径,之间记得用;隔开 )弄完好,在cmd中运行gcc -v 显示出内容表示编译器安装成功,并且可以用命令行编译. 2.编译步骤,在cpan上下载需要的模块,比如Win32::SerialPort,下载好了解压,在cmd中进入这个目录(简单的dos命令应该知道吧),就用常见的方法: perl Makefile.pl make make test make install 如果成功,将不用看下面内容。 方式三: 使用方式二make很可能会出现错误,不能编译,找了很多原因,有高人介绍了解决办法,就是下载一个叫dmake的工具,解压缩,将里面的dmake.exe和startup的文件夹(好象是这个名字)一起复制到c:\dev-cpp\bin 里(因为这个目录注册到环境变量里的),之后安装改成: perl Makefile.pl dmake dmake test dmake install 注意: 如果安装过oracle10g你将会发现出现版本冲突的情况。 解决方案如下:修改%PERL5LIB%环境变量,修改为perl所在目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值