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.makperl 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.makperl 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.mzph.cn/news/150589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Idea远程debug

Idea远程debug 一、方法 1.1、启动时加参数 java -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -jar remote-debug-0.0.1-SNAPSHOT.jar1.2、运行时加参数 在没有显式-agentlib:jdwp参数的情况下进行远程调试: 首先,确保您的Sprin…

【unity实战】unity3D中的PRG库存系统和换装系统(附项目源码)

文章目录 先来看看最终效果前言素材简单绘制库存UI前往mixamo获取人物模型动画获取一些自己喜欢的装备物品模型库存系统换装系统装备偏移问题添加消耗品最终效果源码完结 先来看看最终效果 前言 之前2d的换装和库存系统我们都做过不少了,这次就来学习一个3d版本的&…

如何解决找不到vcruntime140_1.dll问题,亲测有效的5个解决方法分享

在您平常在电脑上正常操作时,有时可能会碰到一个很常见的困扰,那就是弹出一条“找不到vcruntime140_1.dll”的报错信息。这种情况常常是因为咱们在点击启动某个应用程序或者执行某项任务时,系统所需的一款叫作"vcruntime140_1.dll"…

深入理解 synchronized 原理

目录 一. 前言 二. Java对象的内存布局 2.1. 对象头 2.2. Mark Word 2.3. Class Metadata Pointer 2.4. Length 三. 偏向锁 3.1. 偏向锁的工作流程 3.2. 偏向失效 3.2.1. 误区一 3.3. 偏向撤销 3.3.1. 误区一 3.4. 偏向撤销的底层实现 3.5. HashCode与偏向撤销 …

【算法萌新闯力扣】:最常见的单词

力扣热题:最常见的单词 开篇 今天是备战蓝桥杯的第17天,今天到现在刷了5道算法题,分享一道很不错的题目。 题目链接:819.最常见的单词 题目描述 代码思路 根据题目要求,我的思路是:建立一个哈希表,把每个…

释放搜索潜力:基于Docker快速搭建ES语义检索系统(快速版),让信息尽在掌握

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

uni-app(1)pages. json和tabBar

第一步 在HBuilderX中新建项目 填写项目名称、确定目录、选择模板、选择Vue版本:3、点击创建 第二步 配置pages.json文件 pages.json是一个非常重要的配置文件,它用于配置小程序的页面路径、窗口表现、导航条样式等信息。 右键点击pages,按…

Leetcode刷题详解——打家劫舍 II

1. 题目链接:213. 打家劫舍 II 2. 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻…

虚拟机里为什么桥接模式可以广播,NAT模式不能广播?

在虚拟机网络配置中,桥接模式(Bridged mode)允许虚拟机在与主机相同的网络上作为一个独立的设备出现。这意味着虚拟机可以接收和发送广播消息,就像物理机器一样,因为它们处于同一个物理网络上。 相反,NAT模…

2437. 有效时间的数目

2437. 有效时间的数目 Java:回溯 class Solution {int res 0;public int countTime(String time) {char[] arr time.toCharArray();dfs(arr, 0);return res;}public void dfs(char[] arr, int pos) {if (pos arr.length) {if (check(arr)) {res;}return;}if (ar…

解决龙芯loongarch64服务器编译安装Python后yum命令无法使用的问题“no module named ‘dnf‘”

引言 在使用Linux系统时,我们经常会使用yum来管理软件包。然而,有时候我们可能会遇到yum不可用的情况,其中一个原因就是Python的问题。本文将介绍Python对yum可用性的影响,并提供解决方案。 问题引发 正常情况下,安装linux系统后,yum命令是可用状态,升级Python版本后,…

SVG直线 <line>与折线 <polyline>代码示例

本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…

多种方式解决交叉编译中glibc版本不兼容导致的编译问题(libc.so.6: version `GLIBC_xxx‘ not found问题)

目录 背景 开始动手! 第一种 第二种 第三种 背景 一个常见的问题就是: 拿到客户的开发板后需要验证自己本地搭建的交叉编译环境是否正确,这影响到后续的开发. glibc就是指libc.so.6这个动态库,libc.so.6软链接到实际的动态库. 开始动手! 在开发板上,如果有例子比如说可执…

猫罐头品牌排行榜盘点!猫罐头哪个牌子好?

很多猫主人会发现他们家的猫咪可能对猫粮感到腻了,或者猫咪平时不爱喝水,还有一些主人可能会注意到猫咪太瘦了,想尝试给它们添加一些猫罐头,但又不确定如何选择。目前市场上的猫罐头品牌众多,确实让人有些困惑。那么&a…

K8S(一)

一、kubernetes 概述 1、kubernetes 基本介绍 kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的 应用简单并且高效…

LVGL 像文字一样,显示任意自定义符号

颜色可以在程序中设定,符号的C数组生成 这种应用非常适合类似汽车仪表盘中,有很多行业内特定符号需要显示的场景,而且符号需要根据情况改变颜色。网上这方面基本没有资料,本文是作者根据LVGL自定义字库的源代码修改来实现的。 使用工具: 设置:(根据液晶屏不同可能不同…

Git详解

Git是一个开源的分布式版本控制系统,常用于软件开发中对代码版本管理。Git具有版本控制、协作开发、分支管理、代码审查等功能,能够记录每次代码修改的内容和时间,并能够回滚到任意历史版本,方便团队协作和代码维护。 Git的基本概…

JS:给数字添加千分位符(每3位数用逗号隔开)

背景 如果一串数字的长度太长,就不方便阅读,因此可以采用分隔符对数字进行分割本文的分割规则是: 如果数字的长度大于等于5则进行分割,每3位数用逗号分割开 解决 数字可以分为:number类型的数字和字符串类型的数字&…

前端反卷计划-组件库-03-组件样式

Hi, 大家好!我是程序员库里。 今天开始分享如何从0搭建UI组件库。这也是前端反卷计划中的一项。 在接下来的日子,我会持续分享前端反卷计划中的每个知识点。 以下是前端反卷计划的内容: 目前这些内容持续更新到了我的 学习文档 中。感兴趣…

【每周一测】Java阶段三第三周学习

目录 1、事务四个隔离级别中,哪一个不能防止脏读 2、关于sleep()和wait(),以下描述错误的一项是() 3、以下关于Servlet生命周期说法错误的是( ) 4、下列概念解释说明错误的是 5、在 JWT 中&#xff0c…