本文主要是介绍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. 打包成功
这篇关于vs2005+Windows XP 编译OpenSSL 0.9.6a的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!