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.hqwc.cn/news/186196.html

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

相关文章

全新叙事赛道:诺亚引领不良资产合成潮流,DeFi生态再添“万亿”动力

在全球DeFi领域,一场革命性的变革正在悄然兴起。诺亚项目以其独特的商业模式和前瞻性的愿景成为DeFi 2.0的一股新力量。作为全球首家专注于不良资产合成铸币的平台,诺亚项目凭借其强大的经济模型和全新的叙事赛道,正迅速崭露头角,…

智慧能源太阳能光伏数据采集终端钡铼技术4G无线RTU

智慧能源太阳能光伏系统在当今的能源行业中扮演着越来越重要的角色,而钡铼技术有限公司的4G无线RTU(远程终端单元)作为数据采集终端,为智慧能源太阳能光伏系统的监测和管理提供了全新的解决方案。 首先,钡铼技术的4G无…

Redis怎么保证数据不丢失

目录 一、Redis使用持久化保证数据不丢失 二、Redis 持久化的三种方式 三、混合持久化的流程 一、Redis使用持久化保证数据不丢失 Redis 中的数据是存放在内存中的,这样可以保证 Redis 高效的运行,然而内存中的数据会随着系统的重启而丢失,那…

小家具工厂是如何实现成本降低,收益提高的呢

随着科技的发展和数字化时代的到来,越来越多的工厂开始采用生产管理软件来提高生产效率和管理水平。本文将分享我们工厂在使用了万界星空科技免费生产管理MES软件后的成功经验,希望对广大读者有所帮助。 我们工厂在市面上找了很多厂家咨询生产管理软件的…

3D应用开发引擎HOOPS如何促进AEC数字化架构革新?

随着科技的不断发展,建筑、工程和施工(AEC)行业正在掀起令人瞩目的数字化转型浪潮。在这一变革的过程中,Tech Soft 3D的HOOPS SDK(软件开发工具包)正扮演着关键的角色,为构建世界一流的AEC和BIM…

谷歌浏览器F12/打开开发者工具网络就无法连接报错

刷新页面就出现提示: 原因:浏览器网络设置的问题,网络设置了离线状态,切换回3G即可。

Python调用企微机器人: 发送常用格式汇总

企微接口文档 发送应用消息 - 接口文档 - 企业微信开发者中心 发送格式 应用支持推送文本、图片、视频、文件、图文等类型。 ~~~以下列举常用格式 示例~~~ 1.发送文本 代码如下: def sendtxt_robotmsg(self):# 正式keywx_key "xx"wx_webhookurl htt…

C# 实时监控双门双向门禁控制板源码

本示例使用设备:实时网络双门双向门禁控制板可二次编程控制网络继电器远程开关-淘宝网 (taobao.com) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.…

ESP32踩坑记2-组件链接的未定义

发现问题 开发ESP32的时候,当我使用多个组件的时候,编译的时候出现两个问题 Task/Task_Gui.c:13: undefined reference to lvgl_driver_init’ However, the component manager is not enabled 解决问题1 但是我去找这个文件的时候,发现…

构建自定义ChatGPT,微软推出Copilot Studio

11月16日,微软在美国西雅图举办“Microsoft Ignite 2023”全球开发者大会。本次人工智能成为重要主题,微软几乎把所有产品都集成了生成式AI功能并发布了一系列全新产品。 其中,微软重磅推出了Copilot Studio(预览版)&…

使用vs studio 2017的cl命令查看c++类的模型结构

1、定位到当前CPP文件的盘符 2、定位到cpp文件所在目录 3、输入: cl /d1 reportSingleClassLayout查看的类名 所属文件名 例如: 我的代码 //源1.cpp class Base { public:int m_A; protected:int m_B; private:int m_C; //私有成员只是被隐藏了&#x…

提升提测质量之研测共建 | 京东云技术团队

一、序 日常研测工作演绎 你是否也有同样的困惑? 跟进的需求,就在提测前一秒,被告知不能如期提测了,研测计划被打乱; 提测的功能,犹如遇到不好的购物体验,缺斤短两,与prd预期不符…