当前位置: 首页 > article >正文

openssl1.0.2版本Windows安装问题

之前安装过1.1版本,Windows环境下C++ 安装OpenSSL库 源码编译及使用(VS2019)_vs2019安装openssl_肥宝Fable的博客-CSDN博客

后来发现linux编译不过,以为是版本问题,相差太大,所以降一下版本,以免后面写代码有问题。

当然结果发现是没有配链接的库:

Linux环境下C++ 接入OpenSSL-CSDN博客

不过安装1.0.2版本的时候,发现还是有很多坑的,所以记录下来以免后面还是踩坑。

流程可能稍微缩减了一下,由于安装1.1版本的时候,已经装了好多配套的东西,这里不再重复叙述,参考上面1.1版本的文章就好。可能有些东西是多余的。

另外网上找到解决问题的参考文章:

Windows 编译 openssl-1.0.2p静态库 32/64、debug/release、MT/MTd-腾讯云开发者社区-腾讯云

以下是正文:

根据需要编译的平台选择相应的控制台,64位的选择x64,32位的选择x86

 

执行:

perl Configure VC-WIN32 no-asm --debug --prefix=E:\xxx\common\openSSL --openssldir=E:\xxx\common\ssl

结果并没有跟1.1版本的那样输出,不过好像并没有报错

跟着

nmake

然后就提示错误了,

makefile(243) : fatal error U1001: 语法错误: 宏中的非法字符“{”

找了好久都没找到问题,后来直接搜版本才搜到点东西,

需要修改 ms/do_nasm.bat 文件,将原来

perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak

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

修改为:

perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl nasm debug VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl dll nasm debug VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak

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

就是将第二行和第三行编译选项增加了 debug。修改完成后执行 ms/do_nasm.bat

.\ms\do_nasm.bat

直接搬别人的图了,懒得再执行一次了。

修改完成执行如下命令开始编译

nmake -f ms\nt.mak

lib文件在out32.dbg目录下,libeay32.lib、ssleay32.lib

执行完之后,发现只有lib,没有dll文件

要修改 ms\ntdll.mak 将 CFLAG 的 /MDd 属性修改为 /MTd,与你调用项目匹配):

nmake -f ms\ntdll.mak

这一步不知道是会直接生成lib和dll还是只生成dll的。

执行完之后,dll文件在out32dll.dbg

补充一点:dll文件是第二天才搞出来的。编译出lib之后,拿去编译项目工程,发现能编译过了,然后运行的时候,发现没有dll文件居然也可以运行。而且已经很晚了就没继续搞了。

后来越想越不对劲,肯定要dll文件的,全局搜索一下,发现好多软件都自带libeasy32.dll和ssleay32.dll,如果有哪个路径是在环境变量中的,应该会被搜索到。所以我还是趁还记得,编译了一下dll文件放到工程对于目录里面了。


http://www.kler.cn/a/134729.html

相关文章:

  • Unity学习笔记(4):人物和基本组件
  • 【vue2.0入门】vue基本语法
  • 2411C++,C++26反射示例
  • 计算机毕业设计Python+Neo4j知识图谱医疗问答系统 大模型 机器学习 深度学习 人工智能 大数据毕业设计 Python爬虫 Python毕业设计
  • 浅谈C#之内存管理
  • Matlab: 生成对抗网络,使用Datastore结构输入mat格式数据
  • 【系统稳定性】1.6 黑屏(三)
  • 如何远程控制别人电脑进行技术支持?
  • 金融知识普及月:别让“孤注一掷”照进现实,捷信反诈在行动
  • 使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题
  • 分布式下多节点WebSocket消息收发
  • 数字化时代,VR全景如何助力商企抢占市场份额?
  • 分布式原理
  • Python学习笔记(4)
  • CyclicBarrier使用案例
  • ⑩⑥ 【MySQL】详解 触发器TRIGGER,协助 确保数据的完整性,日志记录,数据校验等操作。
  • 微服务学习|Nacos配置管理:统一配置管理、配置热更新、配置共享、搭建Nacos集群
  • 2021年3月青少年软件编程(Python)等级考试试卷(一级)
  • ckplayer自己定义风格播放器的开发记录
  • SaleSmartly新增AI意图识别触发器!让客户享受更精准的自动化服务
  • C++sqrt函数题目
  • 聊一聊小程序单聊页面构思
  • 【广州华锐互动】VR可视化政务服务为公众提供更直观、形象的政策解读
  • hadoop、hive、DBeaver的环境搭建及使用
  • CorelDraw2024(CDR)- 矢量图制作软件介绍
  • CentOS安装nodejs