当使用vcpkg安装的qt5时,在VS调用出现libcrypto-*-x64.dll不是有效路径时
英文解决站点
applocal.ps1 fails in Visual Studio 2019 because of wildcard path in VcpkgAppLocalDLLs · Issue #28614 · microsoft/vcpkg
虽然这个bug不影响生成exe文件,第一次会弹出该错误,再次运行就正常,vcpkg会把对应的libcrypto-*-x64.dll版本复制到exe路径下..但是对于强迫症来说,还是别扭的.
找到vcpkg安装路径中
release版路径
installed\<环境路径>\plugins\qtdeploy.ps1
# This script is based on the implementation of windeployqt for qt5.7.1
#
# Qt's plugin deployment strategy is that each main Qt Module has a hardcoded
# set of plugin subdirectories. Each of these subdirectories is deployed in
# full if that Module is referenced.
#
# This hardcoded list is found inside qttools\src\windeployqt\main.cpp. For
# updating, inspect the symbols qtModuleEntries and qtModuleForPlugin.# Note: this function signature and behavior is depended upon by applocal.ps1
function deployPluginsIfQt([string]$targetBinaryDir, [string]$QtPluginsDir, [string]$targetBinaryName) {$baseDir = Split-Path $QtPluginsDir -parent$binDir = "$baseDir\bin"function deployPlugins([string]$pluginSubdirName) {if (Test-Path "$QtPluginsDir\$pluginSubdirName") {Write-Verbose " Deploying plugins directory '$pluginSubdirName'"New-Item "$targetBinaryDir\plugins\$pluginSubdirName" -ItemType Directory -ErrorAction SilentlyContinue | Out-NullGet-ChildItem "$QtPluginsDir\$pluginSubdirName\*.dll" | % {deployBinary "$targetBinaryDir\plugins\$pluginSubdirName" "$QtPluginsDir\$pluginSubdirName" $_.Nameresolve "$targetBinaryDir\plugins\$pluginSubdirName\$($_.Name)"}} else {Write-Verbose " Skipping plugins directory '$pluginSubdirName': doesn't exist"}}# We detect Qt modules in use via the DLLs themselves. See qtModuleEntries in Qt to find the mapping.if ($targetBinaryName -match "Qt5Cored?.dll") {if (!(Test-Path "$targetBinaryDir\qt.conf")) {"[Paths]" | Out-File -encoding ascii "$targetBinaryDir\qt.conf"}} elseif ($targetBinaryName -match "Qt5Guid?.dll") {Write-Verbose " Deploying platforms"New-Item "$targetBinaryDir\plugins\platforms" -ItemType Directory -ErrorAction SilentlyContinue | Out-NullGet-ChildItem "$QtPluginsDir\platforms\qwindows*.dll" | % {deployBinary "$targetBinaryDir\plugins\platforms" "$QtPluginsDir\platforms" $_.Name}deployPlugins "accessible"deployPlugins "imageformats"deployPlugins "iconengines"deployPlugins "platforminputcontexts"deployPlugins "styles"} elseif ($targetBinaryName -match "Qt5Networkd?.dll") {deployPlugins "bearer"if (Test-Path "$binDir\libcrypto-3-x64.dll"){deployBinary "$targetBinaryDir" "$binDir" "libcrypto-3-x64.dll"deployBinary "$targetBinaryDir" "$binDir" "libssl-3-x64.dll"}if (Test-Path "$binDir\libcrypto-3.dll"){deployBinary "$targetBinaryDir" "$binDir" "libcrypto-3.dll"deployBinary "$targetBinaryDir" "$binDir" "libssl-3.dll"}} elseif ($targetBinaryName -match "Qt5Sqld?.dll") {deployPlugins "sqldrivers"} elseif ($targetBinaryName -match "Qt5Multimediad?.dll") {deployPlugins "audio"deployPlugins "mediaservice"deployPlugins "playlistformats"} elseif ($targetBinaryName -match "Qt5PrintSupportd?.dll") {deployPlugins "printsupport"} elseif ($targetBinaryName -match "Qt5Qmld?.dll") {if(!(Test-Path "$targetBinaryDir\qml")){if (Test-Path "$binDir\..\qml") {cp -r "$binDir\..\qml" $targetBinaryDir} elseif (Test-Path "$binDir\..\..\qml") {cp -r "$binDir\..\..\qml" $targetBinaryDir} else {throw "FAILED"}}foreach ($a in @("Qt5Quick", "Qt5Quickd", "Qt5QmlModels", "Qt5QmlModelsd", "Qt5QuickControls2", "Qt5QuickControls2d", "Qt5QuickShapes", "Qt5QuickShapesd", "Qt5QuickTemplates2", "Qt5QuickTemplates2d", "Qt5QmlWorkerScript", "Qt5QmlWorkerScriptd", "Qt5QuickParticles", "Qt5QuickParticlesd", "Qt5QuickWidgets", "Qt5QuickWidgetsd")){if (Test-Path "$binDir\$a.dll"){deployBinary "$targetBinaryDir" "$binDir" "$a.dll"}}deployPlugins "scenegraph"deployPlugins "qmltooling"} elseif ($targetBinaryName -match "Qt5Quickd?.dll") {foreach ($a in @("Qt5QuickControls2", "Qt5QuickControls2d", "Qt5QuickShapes", "Qt5QuickShapesd", "Qt5QuickTemplates2", "Qt5QuickTemplates2d", "Qt5QmlWorkerScript", "Qt5QmlWorkerScriptd", "Qt5QuickParticles", "Qt5QuickParticlesd", "Qt5QuickWidgets", "Qt5QuickWidgetsd")){if (Test-Path "$binDir\$a.dll"){deployBinary "$targetBinaryDir" "$binDir" "$a.dll"}}deployPlugins "scenegraph"deployPlugins "qmltooling"} elseif ($targetBinaryName -like "Qt5Declarative*.dll") {deployPlugins "qml1tooling"} elseif ($targetBinaryName -like "Qt5Positioning*.dll") {deployPlugins "position"} elseif ($targetBinaryName -like "Qt5Location*.dll") {deployPlugins "geoservices"} elseif ($targetBinaryName -like "Qt5Sensors*.dll") {deployPlugins "sensors"deployPlugins "sensorgestures"} elseif ($targetBinaryName -like "Qt5WebEngineCore*.dll") {deployPlugins "qtwebengine"} elseif ($targetBinaryName -like "Qt53DRenderer*.dll") {deployPlugins "sceneparsers"} elseif ($targetBinaryName -like "Qt5TextToSpeech*.dll") {deployPlugins "texttospeech"} elseif ($targetBinaryName -like "Qt5SerialBus*.dll") {deployPlugins "canbus"}
}
将文件中出现 libcrypto-*-x64.dll ,libssl-*-x64.dll中的*直接改为编译好的dll中的数字,笔者的vcpkg中的版本为3,所以改成了3就正常了,反正就是不要出现*号通配符.
deployPlugins "bearer"if (Test-Path "$binDir\libcrypto-*-x64.dll"){deployBinary "$targetBinaryDir" "$binDir" "libcrypto-*-x64.dll"deployBinary "$targetBinaryDir" "$binDir" "libssl-*-x64.dll"}if (Test-Path "$binDir\libcrypto-*.dll"){deployBinary "$targetBinaryDir" "$binDir" "libcrypto-*.dll"deployBinary "$targetBinaryDir" "$binDir" "libssl-*.dll"}改为:deployPlugins "bearer"if (Test-Path "$binDir\libcrypto-3-x64.dll"){deployBinary "$targetBinaryDir" "$binDir" "libcrypto-3-x64.dll"deployBinary "$targetBinaryDir" "$binDir" "libssl-3-x64.dll"}if (Test-Path "$binDir\libcrypto-3.dll"){deployBinary "$targetBinaryDir" "$binDir" "libcrypto-3.dll"deployBinary "$targetBinaryDir" "$binDir" "libssl-3.dll"}
debug版路径
笔者电脑路径: G:\vcpkg\installed\x64-windows\debug\plugins
直接将release版本改好的替换即可,32位环境下也是一样的
相关文章:
当使用vcpkg安装的qt5时,在VS调用出现libcrypto-*-x64.dll不是有效路径时
英文解决站点 applocal.ps1 fails in Visual Studio 2019 because of wildcard path in VcpkgAppLocalDLLs Issue #28614 microsoft/vcpkg 虽然这个bug不影响生成exe文件,第一次会弹出该错误,再次运行就正常,vcpkg会把对应的libcrypto-*-x64.dll版本复制到exe路径下..但是对…...
在 Vue 中处理跨域请求:全面解析与实践指南
在 Vue 中处理跨域请求:全面解析与实践指南 在现代 Web 开发的复杂生态中,跨域请求(CORS)如同一个无处不在的难题,时刻考验着开发者的技术能力。当我们构建基于 Vue.js 的前端应用时,这一问题尤为凸显。因为…...
标量化rknn的输入输出向量转换处理
这是一篇技术探索。yolo11模型生成后,我发现它无法在rknn环境正确识别出目标对象。而在宿主机上,或者直接调用.pt转换过的.onnx模型是可以得到正确结果的。这篇文章对应近乎一天的工作。最终的结论就是。这是一个模型量化的问题,与yolo的版本…...
认知重构 | 自我分化 | 苏格拉底式提问
注:本文为 “认知重构 | 自我分化” 相关文章合辑。 心理学上有一个词叫:认知重构(改变 “非黑即白,一分为二” 的思维方式) 原创 心理师威叔 心理自救 2024 年 10 月 26 日 19:08 广东 你有没有过这样的时候&#x…...
Java集合之ArrayList(含源码解析 超详细)
1.ArrayList简介 ArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。 ArrayList继承于Ab…...
Java笔记18
2-10-3Cookie&Session 1.会话跟踪技术概述 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次…...
LangChain大模型应用开发:构建Agent智能体
介绍 大家好,博主又来给大家分享知识了。今天要给大家分享的内容是使用LangChain进行大模型应用开发中的构建Agent智能体。 在LangChain中,Agent智能体是一种能够根据输入的任务或问题,动态地决定使用哪些工具(如搜索引擎、数据库查询等)来…...
巧用GitHub的CICD功能免费打包部署前端项目
近年来,随着前端技术的发展,前端项目的构建和打包过程变得越来越复杂,占用的资源也越来越多。我有一台云服务器,原本打算使用Docker进行部署,以简化操作流程。然而,只要执行sudo docker-compose -f deploy/…...
【2】常用cmd命令大全、使用cmd运行和编译Java程序
文章目录 一、常用cmd命令大全文件和目录操作系统信息查看磁盘管理网络操作其他常用命令 二、使用cmd命令运行和编译Java程序 一、常用cmd命令大全 cmd的常用命令较多,java初学者只需了解这几个即可 dir:查看当前路径下的所有文件夹 cd:进入指…...
UniApp SelectorQuery 讲解
一、SelectorQuery简介 在UniApp中,SelectorQuery是一个非常强大的工具,它允许开发者查询节点信息。通过这个API,我们可以获取到页面元素的尺寸、位置、滚动条位置等信息。这在处理动态布局、动画效果或是用户交互时尤为重要。 二、基本使用…...
【行业解决方案篇十一】【DeepSeek零售分析:客流热力图生成系统】
开篇:当商店开始"思考" 你可能不知道,现在北京三里屯的优衣库旗舰店,每天要处理超过3000个顾客的移动轨迹数据。这些数据不是用来监控,而是让店铺自己"学会"把畅销款T恤摆在哪里最能促进销量。今天要讲的DeepSeek零售分析系统,就是这样一个能把"…...
车载DoIP协议 --- TCP详细解析
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活…...
C++关键字之mutable
1.介绍 在C中,mutable是一个关键字,用于修饰类的成员变量。它的主要作用是允许在常量成员函数或常量对象中修改被标记为mutable的成员变量。通常情况下,常量成员函数不能修改类的成员变量,但有些情况下,某些成员变量的…...
设计模式| 观察者模式 Observer Pattern详解
目录 一、概述1.1 动机1.2 核心思想1.3 别名 二、角色与实现原理2.1 角色2.2 实现原理2.3 类图 三、经典接口实现3.1 示例3.1.1 观察者接口3.1.2 目标接口3.1.3 具体被观察者3.1.4 具体观察者3.1.5 Client3.1.6 UML时序图 3.2 特点 四、其他实现方式4.1 委托与事件(…...
Git-速查
Git 安装 Git 之后,你可以… 配置全局用户信息(推荐) 全局设置,创建本地仓库时默认分支名称为 main(你需要什么名称就该什么名称)【推荐配置为 main 】 git config --global init.defaultBranch main全…...
Spring Boot嵌入式服务器深度解析:从配置到调优的全方位指南
文章目录 引言一、嵌入式服务器核心原理1.1 架构设计特点1.2 主流服务器对比 二、嵌入式服务器配置实战2.1 基础配置模板2.2 HTTPS安全配置 三、高级调优策略3.1 线程池优化(Tomcat示例)3.2 响应压缩配置3.3 访问日志配置 四、服务器切换实战4.1 切换至U…...
深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)
本文以https://example.com为例,逐层剖析浏览器从输入URL到页面渲染的完整链路,涵盖DNS解析、TCP/TLS握手、HTTP请求、DOM/CSSOM构建等核心阶段,结合代码示例与性能调优技巧,助你掌握浏览器底层运行机制。 一、导航阶段࿱…...
【网络安全】常见的web攻击
1、SQL注入攻击 定义: 攻击者在HTTP请求中注入恶意的SQL代码,当服务器利用参数构建SQL语句的时候,恶意的SQL代码被一起构建,并在数据库中执行。 示例: 用户登录: 输入用户名xx, 密码 or 1 …...
MySQL面试学习
MySQL 1.事务 事务的4大特性 事务4大特性:原子性、一致性、隔离性、持久性 原⼦性: 事务是最⼩的执⾏单位,不允许分割。事务的原⼦性确保动作要么全部完成,要么全不执行一致性: 执⾏事务前后,数据保持⼀…...
一文读懂Docker之Docker Compose
目录 一、Docker Compose简介 二、Docker Compose的安装和基本使用 1、Docker Compose的安装 步骤一、下载docker-compose 步骤二、新增可执行权限 步骤三、查看是否安装成功 2、Docker Compose的基本使用 (1)、docker-compose up (2)、docker-compose ps (3)、docke…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
