windows-win7编译openssl-1.0.2a

下载一份源码openssl-1.0.2a.tar.gz,解压,参考代码中的INSTALL.W32,步骤如下:

1、解压openssl-1.0.2a.tar

2、cd openssl-1.0.2a

3、执行perl Configure VC-WIN32,配置编译环境

4、执行ms\do_ms.bat,生成配置文件

5、执行nmake -f ms\ntdll.mak,执行编译、链接,编译结果在out32dll目录下,此命令生成动态库

出错一:

'nmake' 不是内部或外部命令,也不是可运行的程序

在vc安装目录搜索,将ide路径和nmake所在路径填到环境变量path中

本人是(仅供参考):E:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;E:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN;

出错二:

ms\uplink.c(11) : fatal error C1083: 无法打开包括文件:“windows.h”: No such file or directory
NMAKE : fatal error U1077: “"E:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.EXE"”: 返回代码“0x2”

产生原因:找不到代码文件中包含的头文件

解决办法:cmd下进入到vs安装路径\VC\Bin下,执行vcvars32.bat,此时会执行vcvas32.bat自动为当前命令提示符设置VS环境变量。

以上两个环境问题,也可以使用Visual Studio tools中的命令提示符解决。

出错三:

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.EXE'  return  code  '0x1'
Stop.


解决办法在第3步中添加no-asm参数,即perl Configure VC-WIN32 no-asm,然后再继续执行后续步骤。


6、执行nmake -f ms\nt.mak,执行编译生成静态库,在out32下

此时如果出现如下错误:

cryptlib.obj : error LNK2001: unresolved external symbol _OPENSSL_ia32_cpuid

解决办法:

修改ms\do_ms.bat文件如下:

perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl debug no-asm VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl debug dll no-asm VC-WIN32 >ms\ntdll.mak
if x%OSVERSION% == x goto skipce
perl util\mk1mf.pl debug no-asm VC-CE >ms\ce.mak
perl util\mk1mf.pl debug dll no-asm VC-CE >ms\cedll.mak
:skipce


perl util\mkdef.pl 32 libeay > ms\libeay32.def
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def


参考:http://blog.csdn.net/cuiyifang/article/details/45932817

http://blog.csdn.net/dragoo1/article/details/22398473


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Win64静态编译过的OpenSSL 1.0.2是针对Windows 64位操作系统进行的编译,并且以静态链接库的方式提供给用户使用的版本。 OpenSSL是一个开源的软件库,提供了一系列的加密和网络通信功能。通过编译OpenSSL,可以使其在Windows 64位操作系统上运行,并将其作为静态链接库进行使用。 静态编译的意思是将OpenSSL中的函数和代码编译进最终的应用程序中,而不是在运行时候动态链接。这样做的好处是在使用时不再需要依赖外部的动态链接库文件,而是直接在应用程序中调用OpenSSL的相关函数。这样可以更方便地进行应用程序的开发、部署和发布,减少了外部依赖的麻烦。 OpenSSL 1.0.2是一个较旧的版本,但是仍然被一些程序和系统所使用。通过静态编译,用户可以在Windows 64位操作系统上使用OpenSSL 1.0.2,而不必担心与其他版本或平台的兼容性问题。 通过使用Win64静态编译过的OpenSSL 1.0.2,用户可以在开发和部署应用程序时,使用OpenSSL提供的加密和网络通信功能,保障数据的安全传输和处理。静态编译的方式使得使用OpenSSL更加方便,避免了外部依赖的问题。同时,该版本适用于Windows 64位操作系统,满足了这一平台的需求。 总之,Win64静态编译过的OpenSSL 1.0.2是一个针对Windows 64位操作系统进行的编译,并以静态链接库的形式提供给用户使用的版本,可以方便地在开发、部署和发布应用程序时使用OpenSSL的加密和网络通信功能,保障数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值