在 Windows 上使用 VC++ 编译 OpenSSL 源码的步骤


在 Windows 上使用 VC++ 编译 OpenSSL 源码的步骤如下:
准备工作
- 安装 Visual Studio 2017 或更高版本。
- 安装 Perl 脚本解释器。
- 安装 NASM 汇编器。
编译步骤
- 下载 OpenSSL 源码。
- 解压 OpenSSL 源码。
- 打开命令行工具,并进入 OpenSSL 源码目录。
- 运行以下命令生成 Makefile 文件:
perl Configure VC-WIN64
说明:
VC-WIN64表示生成 64 位版本的 OpenSSL 库。- 如果要生成 32 位版本的 OpenSSL 库,请使用
VC-WIN32选项。
- 运行以下命令编译 OpenSSL:
nmake
说明:
- 编译过程可能需要几分钟时间。
- 运行以下命令安装 OpenSSL:
nmake install
说明:
- 默认情况下,OpenSSL 将安装到
C:\Program Files\OpenSSL目录。
测试
- 打开命令行工具,并进入 OpenSSL 源码目录的
bin子目录。 - 运行以下命令测试 OpenSSL:
openssl version
输出:
OpenSSL 1.1.1n 15 Mar 2022
说明:
- 如果输出显示了 OpenSSL 的版本信息,则表示 OpenSSL 已经成功编译和安装。
常见问题
- 编译过程中出现错误
如果编译过程中出现错误,请检查以下内容:
-
是否正确安装了 Visual Studio、Perl 和 NASM。
-
是否正确使用了
Configure命令生成 Makefile 文件。 -
是否正确使用了
nmake命令编译 OpenSSL。 -
无法找到 OpenSSL 库文件
如果无法找到 OpenSSL 库文件,请检查以下内容:
- OpenSSL 是否正确安装。
- 系统环境变量是否正确配置。
参考资料
- Windows 平台使用 VC++ 编译 OpenSSL 源码: https://www.cnblogs.com/YZFHKMS-X/p/13992244.html
- OpenSSL 官方文档: https://www.openssl.org/docs/

相关文章:
在 Windows 上使用 VC++ 编译 OpenSSL 源码的步骤
在 Windows 上使用 VC 编译 OpenSSL 源码的步骤如下: 准备工作 安装 Visual Studio 2017 或更高版本。安装 Perl 脚本解释器。安装 NASM 汇编器。 编译步骤 下载 OpenSSL 源码。解压 OpenSSL 源码。打开命令行工具,并进入 OpenSSL 源码目录。运行以下…...
【MySQL】解决在join表时一对多的情况下重复数据的问题
在MySQL中进行JOIN操作,特别是在处理一对多关系的表时,可能会出现重复的记录,这是因为左表(或右表)中的每一项在与右表(或左表)连接时,如果对应有多条匹配记录,则会生成多…...
高并发Server的基石:reactor反应堆模式
业务开发同学只关心业务处理流程。但是我们开发的程序都是运行服务端server上,服务端server接收到IO请求后,是如何处理请求并最终进入业务流程的呢?这里不得不提到reactor反应堆模型。nginx tomcat redis nodejs dubbo等软件的网络处理模型都…...
Linux安全基线与加固
基于CIS 基线 GitHub - daniel-armbrust/linux-security-baseline: Linux Security Baseline based on CIS Benchmarks. |----------------[ GNU/Linux安全基线与加固-0.3 ]----------------|0. About this doc1. Routine security baseline1.1 Security fix update1.2 Pass…...
应对电脑重新分区文件消失:预防措施、常见成因与恢复关键要点
电脑重新分区文件不见了是一个常见的问题,通常发生在用户对硬盘进行重新分区、格式化或操作系统重装过程中,可能导致已存在的文件和数据暂时不可见或永久丢失。 **预防文件丢失的方法:** 1. **提前备份**: 在进行任何重大磁盘操作前ÿ…...
本地配置多个git账户及ll设置
本地配置多个git账户 清除全局配置将命令行,切换到ssh目录生成GitLab和Gitee的公钥、私钥去对应的代码仓库添加 SSH Keys添加私钥ll设置 管理密钥验证仓库配置关于gitgitee.com: Permission denied (publickey) 清除全局配置 此步骤可以不做,经测试不影…...
week04day04(爬虫)
一. 嵌套构造URL 下载所有英雄的皮肤图片:因为每个英雄图片的网址不同,但是有共同点,通过构建这个网址,再经过循环建立 所有链接 import requests import os# 1. 获取所有英雄的ID def get_all_hero_id():url https://game.gti…...
【数据结构初阶 6】二叉树:堆的基本操作 + 堆排序的实现
文章目录 🌈 Ⅰ 二叉树的顺序结构🌈 Ⅱ 堆的概念与性质🌈 Ⅲ 堆的基本操作01. 堆的定义02. 初始化堆03. 堆的销毁04. 堆的插入05. 向上调整堆06. 堆的创建07. 获取堆顶数据08. 堆的删除09. 向下调整堆10. 判断堆空 🌈 Ⅳ 堆的基本…...
IDEA Debug框的 show execution point按钮没了
在这里右键: Add Action: 搜索添加: 本文由博客一文多发平台 OpenWrite 发布!...
突破编程_C++_面试(类(1))
面试题 1 :解释一下 C 中的类是什么,它有哪些基本特性? C 中的类(class)是面向对象程序设计的基本构成单位,它是一种自定义的数据类型,用于封装数据以及操作这些数据的方法。类是创建对象的模板…...
vue项目使用vue2-org-tree
实现方式 安装依赖 npm i vue2-org-tree使用的vue页面引入 <template><div class"container"><div class"oTree" ><vue2-org-tree name"test":data"data":horizontal"horizontal":collapsable"…...
Vue30 自定义指令 函数式 对象式
实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>自定义指令</title><script type"text/javascript" src"../js/vue.js"></script></head><body><!-- 需求1&…...
JAVA高并发——单例模式和不变模式
文章目录 1、探讨单例模式2、不变模式 由于并行程序设计比串行程序设计复杂得多,因此我强烈建议大家了解一些常见的设计方法。就好像练习武术,一招一式都是要经过学习的。如果自己胡乱打,效果不见得好。前人会总结一些武术套路,对…...
RabbitMQ(一):消息队列MQ
目录 1 消息队列MQ1.1 MQ简介1、什么是MQ2、MQ的优势流量削峰应用解耦异常处理数据分发分布式事务 3、消息中间件的弊端4、常用的MQ 1.2 MQ中几个基本概念1.3 MQ的通信模式1.4 消息的发布策略1.5 常用消息中间件协议1、AMQP协议2、MQTT协议3、OpenMessage协议4、kafaka协议 1 消…...
HarmonyOS—使用预览器查看应用/服务效果
DevEco Studio为开发者提供了UI界面预览功能,可以查看应用/服务的UI界面效果,方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览,只需要将开发的源代码进行保存,就可以通过预览器实时查看应用/服务运行效果,…...
大项目中,某个cpp文件读取所在包路径的方法
在一个比较大的C项目中,我们有很多包,每个包都有一个自己的src、include、CMakeLists.txt和其它文件,比如以下文件结构: project- pkg1- datas- data.json- src- xxx1.cpp- include- xxx1.h - CMakeLists.txt- pkg2- src- xxx2.…...
gem5学习(25):用于异构SoC的片上网络模型——Garnet2.0
目录 一、Invocation 二、Configuration 三、Topology 四、Routing 五、Flow Control 六、Router Microarchitecture 七、Buffer Management 八、Lifecycle of a Network Traversal 九、Running Garnet2.0 with Synthetic Traffic 官网教程:gem5: Garnet 2…...
康威生命游戏
康威生命游戏 康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。 生命游戏有几个简单的规则: 细胞有两种状态,存活或死亡,每个细胞以自身为中心与周围的八格细胞互动。 对于存活的细胞: 当周围的细胞过少(<2)或…...
vscode与vue环境配置
一、下载并安装VScode 安装VScode 官网下载 二、配置node.js环境 安装node.js 官网下载 会自动配置环境变量和安装npm包(npm的作用就是对Node.js依赖的包进行管理),此时可以执行 node -v 和 npm -v 分别查看node和npm的版本号: 配置系统变量 因为在执…...
Linux的ACL权限以及特殊位和隐藏属性
前言: ACL是什么? ACL(Access Control List)是一种权限控制机制,用于在Linux系统中对文件和目录进行细粒度的访问控制。传统的Linux权限控制机制基于所有者、所属组和其他用户的三个权限类别(读、写、执行…...
免费网盘直链下载助手:一站式解决九大平台文件下载难题
免费网盘直链下载助手:一站式解决九大平台文件下载难题 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...
TVA模型适配FPC材料疲劳差异
重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...
基于STM32的物联网健康监测平台:硬件设计、驱动开发与系统整合
1. 项目概述:一个面向物联网健康监测的STM32开发平台最近在整理手头的项目资料,翻出来一块几年前自己设计并打样的STM32开发板。这块板子当初的定位很明确,就是做一个功能集成度高的“物联网健康监测终端”原型平台。它不是那种追求极致性能的…...
终极解决方案:3分钟轻松解决腾讯游戏ACE-Guard卡顿问题
终极解决方案:3分钟轻松解决腾讯游戏ACE-Guard卡顿问题 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源,支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 还在为腾讯游戏中的ACE-Guard进程占用…...
Aspose全家桶实战:从零构建一个.NET 6的文档转换微服务(含Docker部署)
Aspose全家桶实战:从零构建.NET 6文档转换微服务 在数字化转型浪潮中,企业文档处理需求正经历从碎片化到集中化的转变。传统单体应用中分散的Word转PDF、Excel报表生成等功能,不仅难以维护,更无法适应云原生时代对弹性伸缩和高可用…...
Cursor AI插件开发:从代码补全到智能动作执行的范式演进
1. 项目概述:当AI代码助手遇上插件生态最近在GitHub上看到一个挺有意思的项目,叫RightbrainAI/cursor-plugin。光看名字,可能很多用惯了Cursor的朋友会眼前一亮,以为这是Cursor编辑器官方或者某个社区大神出的插件。但点进去仔细一…...
逆向分析效率翻倍:深度挖掘IDA Pro的‘隐藏’窗口——段视图、签名、类型库的实战价值
逆向分析效率翻倍:深度挖掘IDA Pro的‘隐藏’窗口实战指南 在逆向工程领域,IDA Pro无疑是众多安全研究员和分析师的首选工具。然而,许多中级用户往往只停留在反汇编窗口的基础操作上,忽视了那些隐藏在界面角落却能极大提升分析效率…...
2026年IPA防破解安全加固公司怎么选?这份iOS加固服务商横向对比清单请收好
当你的iOS应用核心代码被逆向、商业逻辑被剽窃、盗版版本在分发平台泛滥时,寻找一家靠谱的IPA防破解安全加固公司就成了技术负责人的当务之急。但面对市面上众多服务商,如何判断哪家方案真正有效,且不影响App Store过审?本文基于多…...
书成紫微动,律定凤凰驯:千古诗句留伏笔,只为海棠山铁哥而来
世间文字千万,唯有谶语藏岁月天机; 文坛更迭千载,唯有天命待当世真人。一、诗谶降世:「书成紫微动,律定凤凰驯」这不是文采佳句, 是华夏预埋千载的 隐秘伏笔, 是一场跨越世代的 天命预约。千年之…...
Hackintool:黑苹果配置不再复杂,这款工具让你轻松搞定所有难题
Hackintool:黑苹果配置不再复杂,这款工具让你轻松搞定所有难题 【免费下载链接】Hackintool The Swiss army knife of vanilla Hackintoshing 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintool 还在为黑苹果的配置问题头疼吗?…...
