vs2005+Windows XP 编译OpenSSL 0.9.6a

2024-01-26 08:38

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646223

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想