windows上vcpkg install openssl失败后手动nmake编译安装openssl

最近需要移植一个跨平台项目代码到windows上,其中依赖curl和openssl;

**

1.vcpkg安装

**
首先自然而然想到使用vckpg进行包管理,因为不牵扯到多项目引用,所以用vcpkg的经典模式进行安装:

项目依赖的curl版本是8.6.0,vcpkg git pull 后查看日志,最新依赖已经更新到8.7.1:
在这里插入图片描述
为了安装curl@8.6.0,需要checkout 8.6.0版本对应的vcpkg,切换到vcpkg目录,然后执行:
git checkout fce5c633c8beb6e57b5d5f2476b037b798fe13f1
再安装64位curl:
vcpkg install curl:x64-windows
然后安装openssl,curl@8.6.0依赖的openssl版本是3.2.1,因为vcpkg已经checkout到curl8.6.0这个提交,所以对应的openssl提交已经是3.2.1,此时无需再针对openssl进行checkout,直接install安装即可:
vcpkg install openssl:x64-windows
出现意外,安装失败:
在这里插入图片描述
查看err日志:
在这里插入图片描述
两个异常,一个是perl提示的,一个nasm提示的,但perl和nasm已经添加到path,执行相关命令检查输出也正常:
在这里插入图片描述
折腾了许久,vcpkg始终提示这个安装错误,没办法,只能想办法手动安装了。

**

2.手动安装:

**
检查了下vckpg相关目录,相应版本的openssl的源码包已经下载成功了:
在这里插入图片描述
于是分别解压到x86文件夹和x64文件夹进行分别编译,为什么要搞两个文件夹呢,主要是为了防止编译x86产生的缓存文件导致x64编译失败(或者反之),编译后安装目录统一
切换到解压后的目录,以x64为例:
1,首先打开vs cmd prompt:
在这里插入图片描述
然后切换到对应的openssl源码目录:
在这里插入图片描述
执行编译配置命令:

perl Configure VC-WIN64A no-asm --prefix="D:\aimowork\vcpkg\downloads\openssl-openssl-3.2.1\build\Release\X64"

命令里使用了no-asm参数,不知为什么不加这个参数我还是会编译失败,只能加上了。

生成相应的命令后就可以进行编译了,执行:
nmake
或 nmake >build.log,这样编译日志会输出到log文件,方便查看编译报错;
过程有点慢,最后再执行
nmake install
生成编译的最终可用结果到prefix指定的目录下:
在这里插入图片描述
最后的最后,为了能在vs中正常使用,手动复制相关文件夹到vcpkg目录下:
在这里插入图片描述
执行vcpkg list命令,虽然看不到openssl在安装列表里,但项目中是可以正常使用的:
在这里插入图片描述
vs中引用
在这里插入图片描述
第一次使用vcpkg,还不熟练,可能姿势不太对,有点折腾了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11824.shtml

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

相关文章

31万奖金池等你挑战!IJCAI 2024 第九届“信也科技杯”全球AI算法大赛正式开赛!聚焦AI尖端赛题!

文章目录 ⭐️ 赛事概况⭐️ 赛事奖励⭐️ 赛事日程速览⭐️ 报名通道与赛事交流群⭐️ 关于 “信也科技杯”⭐️ 关于信也科技 ⭐️ 赛事概况 随着语音合成技术的不断进步,合成语音与真实语音之间的界限变得模糊,这不仅对数据安全构成威胁,也对科技伦理提出了新的要求。 第九…

ValueError: source code string cannot contain null bytes

导入pandas报如下错误: 解决: pandas好像只支持到3.8,我的python是3.10,改成3.7就能正常使用了

【stm32-5】输入捕获模式测频率PWMI模式测频率占空比

1.输入捕获模式测频率 (1)main.c #include "Device/Include/stm32f10x.h" // Device header #include "pwm.h" #include "delay.h" #include "OLED.h" #include "IC.h" uint8_t i; int main(void…

idea连接远程仓库

git ->克隆。 url为远程仓库的地址,输入好后,选择项目存放目录,再点击克隆 点击新窗口打开。 切换到对应分支

使用Xshell工具连接ubuntu-方便快捷

使用Xshell连接ubuntu 在命令行输入 “sudo apt-get install openssh-server”安装openssh-server 开启 ssh-server,在命令行输入 “service ssh start”,然后输入密码即可

Spring Boot | Spring Boot 整合“ 邮件任务“ 实现

目录: Spring Boot 整合" 邮件任务" 实现 :一、发送 "纯文本邮件" :(1) 添加 "邮件服务" 依赖启动器(2) 添加 "邮件服务" 配置信息(3) 定制 "邮件发送服务"(4) "纯文本" 邮件发送 测试效果 二、发送 带 "附件…

进程和计划任务管理

查看系统进程信息 静态查看系统进程信息之ps命令 (每五秒刷新一次数据) 方法一:ps aux //显示所有进程 a:显示现行终端下的所有进程,包括其它用户的进程。u:显示进程的归属用户及内存的使用情况。x…

【qt】动态属性

这里写目录标题 一.属性1.属性的好处2.添加属性3.使用属性 二.只读属性 一.属性 1.属性的好处 说到属性(property),你们会想到什么?我会联想到特点,就是一类对象所特有的,在C中,成员数据就是这…

2.3 Spark运行架构与原理

Spark运行架构由SparkContext、Cluster Manager和Worker构成。在集群模式下,Driver进程初始化SparkContext并向Cluster Manager申请资源,后者根据算法在Worker节点上启动Executor。Executor负责任务执行,反馈状态给Cluster Manager。任务由Ta…

MyBatis-Plus核心功能详解:条件构造器、自定义SQL与Service接口

在Java的Web开发中,MyBatis-Plus作为MyBatis的增强工具,提供了许多实用的功能,极大地简化了数据库操作的开发过程。下面,我们将详细探讨MyBatis-Plus的三大核心功能:条件构造器、自定义SQL以及Service接口。 一、条件…

FBX Python SDK 入门教程

安装 1. 下载 FBX Python SDK 官网地址,根据你的操作系统,下载相应的 FBX SDK 2020.3.4 Python exe 文件。 2. 安装 执行下载的文件 fbx202034_fbxpythonsdk_win.exe,安装完的程序路径我的是 D:\Program Files\Autodesk\FBX\FBX Python SDK\…

构建滴滴业务中台:系统架构设计探索

在当今数字化时代,滴滴作为中国领先的出行平台,承载着数亿用户的出行需求,业务规模庞大且复杂多样。为了更好地支撑业务发展和提升服务质量,滴滴不断探索和构建业务中台,以实现业务的快速响应、灵活运营和持续创新。在…

【vivado】debug相关时钟及其约束关系

一、前言 在xilinx fpga的degug过程中,经常出现由于时钟不对而导致的观测波形失败,要想能够解决这些问题需要了解其debug的组成环境以及之间的数据流。本文主要介绍debug过程中需要的时钟及各时钟之间的关系。 二、debug相关时钟 Vivado 硬件管理器使…

【NodeMCU实时天气时钟温湿度项目 6】解析天气信息JSON数据并显示在 TFT 屏幕上(心知天气版)

今天是第六专题,主要内容是:导入ArduinoJson功能库,借助该库解析从【心知天气】官网返回的JSON数据,并显示在 TFT 屏幕上。 如您需要了解其它专题的内容,请点击下面的链接。 第一专题内容,请参考&a…

商城小程序系统与C#.net商城小程序系统源码_OctShop

在移动互联网与电商的时代,商城小程序系统已经成为了众多企业和商家开展电商业务的重要工具。OctShop将以商城小程序系统、C#商城小程序系统源码和.net 商城小程序系统为主题,探讨这些系统的特点和优势。 一、商城小程序系统是什么 商城小程序系统是一种…

福派斯鲜肉狗粮大揭秘,狗狗吃了都说好!

狗粮哪个牌子好?我强烈推荐福派斯鲜肉狗粮!在众多狗粮品牌中,福派斯以其高品质、营养均衡以及独特的产品特点,受到了广大宠物主人的一致好评。 (1) 福派斯鲜肉狗粮的配方表透露出其对于原料选择的严谨和用心。高达75%的鲜肉含量&a…

linux不小心将/etc/passwd用户文件清空或删除解决方法

大概思路:进入单用户模式将passwd-引子程序复制为删除的passwd用户文件,关闭selinux 此系统为:centos 7 1.在GRUB引导的时候按e进入编辑模式,linux16那一行的ro 修改为rw rd.break ‘ ’ 2.ctrlx执行 3.进入单用户模式后修改根…

springboot学习整理

视频:基础篇-01_springboot概述_哔哩哔哩_bilibili 介绍 spring boot 是spring提供的一个子项目,用于快速构建spring应用程序 spring构建: 1 导入依赖繁琐 ; 2 项目配置繁琐 spring Framework: 核心 spring Boot :快速构建spring…

秒杀系统之设计方向

1 秒杀存在的问题 对于一个日常平稳的业务系统,如果直接开通秒杀功能的话,往往会出现很多问题—— 2 设计方向的思考 秒杀本质是要求一个瞬时高发下的承压系统,这也是其区别于其他业务的核心场景。对日常系统秒杀产生的问题逐一进行拆解分…

深入浅出:ConcurrentLinkedQueue源码分析与实战

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…