当使用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互操作性,…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
