Windows 下OpenSSL安装过程及错误解决办法

原文地址::https://blog.csdn.net/xuebing1995/article/details/80004638

相关文章

1、[原]Windows下openssl的下载安装和使用----https://www.cnblogs.com/lpxblog/p/5382653.html

2、Windows下openssl安装及使用----https://www.cnblogs.com/alanjl/p/5481475.html

3、Windows环境下OpenSSL下载安装及制作证书----https://blog.csdn.net/chengyikang20/article/details/89647933

4、Windows7(64位)环境下安装openssl详细步骤+图解(亲测有效分享)----https://bbs.csdn.net/topics/392193545?page=1

Windows下使用OpenSSL有两种方式:
一.直接下载别人编译好的安装包:http://slproweb.com/products/Win32OpenSSL.html
二.自己编译安装:
1.下载并安装perl
http://www.activestate.com/activeperl/downloads/
2.安装与配置:
直接运行安装文件(例如:ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi)即可完成安装;安装过程将自动完成环境变量的配置(安装完成之后,可以在系统环境变量里看到perl的bin目录(例如: C:\Program Files\perl\site\bin;)已经被加入进来),无需再手工配置;
3.测试安装是否成功:
进入perl安装目录的eg文件夹,执行“perl example.pl”若显示“Hello from ActivePerl!”,则说明Perl安装成功。如下图所示:

perl安装成功之后就可以开始使用Perl的相关命令来进行OpenSSL的安装了。
4.openssl可以自己下载源码编译也可以直接下载安装包安装完之后即可使用。
5.使用源码编译openssl
1) 下载openssl源码的路径:
http://www.openssl.org/source/
2)配置VS2012的环境变量(因为后面编译openssl时,将会用到vs2012自带的nmake工具)。
执行VS2012的bin目录下(例如:E:\Visuol Studio 2012\VC\bin)的vcvars32.bat文件即可完成配置,我的因为配置完了什么都不显示了。就不截图了。
3)配置openssl
以下是我在网上找到的配置OpenSSL的方法,这里我上链接吧:https://blog.csdn.net/houjixin/article/details/25806151

注意:
我按照他的方法进行操作,出现两种错误,
1.

tmp32dll\sha1-586.asm(1432) : error A2070:invalid instruction operands
tmp32dll\sha1-586.asm(1576) : error A2070:invalid instruction operands
NMAKE : fatal error U1077: “"E:\Visuol Studio 2012\VC\BIN\cl.EXE"”: 返回代码“0x1”
1
2
3
2.

tmp32dll\sha1-586.asm(1432) : error A2070:invalid instruction operands
tmp32dll\sha1-586.asm(1576) : error A2070:invalid instruction operandsN
MAKE : fatal error U1077: “"E:\Visuol Studio 2012\VC\BIN\cl.EXE"”: 返回代码“0x2”
1
2
3
废了九牛二虎之力才找到了解决的方法,
针对第一种错误的解决方法是:禁用汇编

perl Configure VC-WIN32 no-asm
1
第二种错误的解决方法为:这个在openssl官方网站上找到了,方法是禁用IPV6
可以参考:http://rt.openssl.org/Ticket/Display.html?id=2097&user=guest&pass=guest

perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0
1
最终我改成了:

perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0 no-asm
1
到这里很开心啊,刷刷的一直在编译,说明成功啦,duangduangduang,结果出现了:

  link /nologo /subsystem:console /opt:ref /debug /dll /out:out32dll\libeay32.dll /def:ms/LIBEAY32.def @C:\Users\ADMINI~1\AppData\Local\Temp\nmE10C.tmp
   正在创建库 out32dll\libeay32.lib 和对象 out32dll\libeay32.exp
cryptlib.obj : error LNK2019: 无法解析的外部符号 _OPENSSL_ia32_cpuid,该符号在函数 _OPENSSL_cpuid_setup 中被引用
cryptlib.obj : error LNK2001: 无法解析的外部符号 _OPENSSL_ia32cap_P
md5_dgst.obj : error LNK2019: 无法解析的外部符号 _md5_block_asm_data_order,该符号在函数 _MD5_Final 中被引用
sha1dgst.obj : error LNK2019: 无法解析的外部符号 _sha1_block_data_order,该符号在函数 _SHA1_Final 中被引用
sha256.obj : error LNK2019: 无法解析的外部符号 _sha256_block_data_order,该符号在函数 _SHA256_Final 中被引用
sha512.obj : error LNK2019: 无法解析的外部符号 _sha512_block_data_order,该符号在函数 _SHA512_Final 中被引用
out32dll\libeay32.dll : fatal error LNK1120: 6 个无法解析的外部命令
NMAKE : fatal error U1077: “"E:\Visuol Studio 2012\VC\BIN\link.EXE"”: 返回代码“0x460”
1
2
3
4
5
6
7
8
9
10
11

这就很蛋疼啊,但是我还是没有放弃,这个问题我觉得不是很难解决。后来我在百度上找到了这样一篇文章:https://blog.csdn.net/mfcing/article/details/43059105,其实跟出现的这个错误并没有什么相关联的,但是我看到了一条这样的代码:

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

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

    清除上次动态库的编译,以便重新编译:
    nmake -f ms\ntdll.mak clean
    清除上次静态库的编译,以便重新编译:
    nmake -f ms\nt.mak clean
1
2
3
4
5
6
7
8
9
10
11
12
13
14
我就在想是不是跟我之前编译过了一次有关系?于是我敲了:

nmake -f ms\ntdll.mak clean
1
再从头来了一遍

1.perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0 no-asm
2.ms\do_ms.bat
3.nmake -f ms\ntdll.mak
1
2
3
刷刷刷刷刷刷。。。。。。。。。。等了一分多钟,,,终于可以了!


我又执行了一下nmake -f ms\ntdll.mak test 测试了一下。

说明:本次测试在WIN10 64 VS2012 openssl-1.0.2o 版本测试成功,其他情况并不确保成功。如有问题,请联系博主。小弟尽量帮解决。
————————————————
版权声明:本文为CSDN博主「离水的鱼儿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xuebing1995/article/details/80004638

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值