vs2005+Windows XP 编译OpenSSL 0.9.6a

一开始用的是vs2012 + Windows 10,但是编译报错,无奈之下只能在xp虚拟机里编译,vc6和vs2005都试了,最后还是用了vs2005。

vc6编译的时候会报错,大致意思就是不识别long long类型,我不想改代码,也改不了,所以最后还是用的vs2005。使用vs2005虽然也有一些报错,但是陆续都解决了,附上编译好的32位动态库。

链接:https://pan.baidu.com/s/1NEjVBSEXhCSe72X-vrYDtg 
提取码:pztg 


ps. 今天又因为某些原因不得不尝试用vc6编译OpenSSL 0.9.6a,然后发现,只要不用汇编编译,vc6是可以编译通过的,而且没有报错!强烈建议改用vc6编译,注意不要用masm或者nasm。

链接:https://pan.baidu.com/s/1h-is583Qf-4ZPxsMEojF5g 
提取码:iu8z 

编译步骤

编译步骤其实很少,不算除错、测试、打包的话就3步:

1.perl Configure VC-WIN32

2.ms\do_ms

3.nmake -f ms\ntdll.mak

老版本OpenSSL使用vc++ && windows编译,就是会有一些奇奇怪怪的问题,作者在说明文档里也提到,很少使用win32编译环境,所以有问题也不奇怪了,新版本就好很多,虽然编译速度慢了点,但是一遍就过了,也没有什么报错。很好奇作者平时是用什么开发OpenSSL的,如果不是非得用老版本,建议直接上最新版本。

编译过程

1. 事先安装好perl 5,官方推荐的 ActivePerl下载安装包要先注册,我嫌麻烦,就用的Strawberry Perl

2. 解压OpenSSL 0.9.6a源码,这里想要吐槽一下,我以为是老版本才需要自己编译,没想到最新版本也要自己编译,官方就不提供编译好的二进制包,不理解。

3.打开解压后的文件夹,找到编译安装说明文件,照着里面的步骤做:

4. 因为我是用的windows + vs2005,所以就只看win32的编译步骤就行了

 5. 打开vs2005 命令行

6. 进入到OpenSSL所在目录,然后按步骤执行perl Configure VC-WIN32

7. 然后执行ms\do_ms,这里要注意,不使用汇编,因为无论是masm还是nasm都会导致后面编译时报链接错误,原因未知

8. 然后执行nmake -f ms\ntdll.mak,报错C4996,大致意思就是要用带"_s"的函数,我不想改代码,就直接把警告屏蔽了。

9. 忽略警告C4996,打开ntdll.mak文件,修改make文件编译选项,加上/wd4996,保存之后再执行nmake -f ms\ntdll.mak

10. 继续编译,报错C4244 ,数据类型转换报错,不管,直接屏蔽,还是修改ntdll.mak文件

11. 继续编译,报错C4113,无语了,void和无参数不是一个意思吗,这还报错?直接屏蔽

12. 编译成功

13. 然后执行OpenSSL测试代码

14. 所有测试通过

15. 编写打包脚本,老版本的OpenSSL没有直接提供打包脚本,但是文档里其实是有的,稍微改改就行:

16。改完之后就是这样,其实就是把拷贝头文件的脚本改了一下,然后执行

 

17. 打包成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值