Qt程序发布工具windeployqt.exe所带来的坑

一、使用Qt自带的发布工具:windeployqt.exe来自动查找运行时库文件,是个好办法。但是该工具有坑!并且坑很深!我在发布程序时就遇到了一个大坑!我使用该工具进行程序发布,自动查找运行时库文件,看起来比较完美,所有用到的DLL文件都准备齐全!在开发机上也能正常运行!但是发布到客户端后,却无法运行!并且报错:0xC000007b,直接一头慒!后来经过1天多的问题查找,终于搞明白了为什么会报这样的错误!
二、故障排查步骤:我首先考虑到的是Qt的依赖库出了问题!于是我就尝试在开发机上把Qt文件夹改名,因为开发机上运行是正常的,结果改名后,开发机也运行不了!心里暗自欢喜!问题终于有了线索!然后继续深订追查!把Qt文件夹名称恢复了,然后根据所用的编译器,找到编译器所在路径的bin文件夹,尝试改名,然后再次运行,结果还是无法运行,范围又缩小了!然后我就把bin文件夹中的所有dll文件全部拷贝到了应用程序的发布文件夹中,再把bin文件夹改名,再次运行,结果正常运行了,于是问题就锁定在bin文件夹的dll文件上。然后对发布文件夹中的所用到的Qt的库文件(基本都在编译器的bin文件夹中)与Qt编译器下的bin文件夹中的对应dll文件进行了对比,发现有大小不同文件存在,于是把这类文件用bin文件夹中的dll库文件替换,然后发布到客户端运行,结果正常运行!
三、发现的windeployqt.exe的问题:发现这个工具把msvc2017编译器下的bin文件夹中的Qt5OpenGL.dll和Qt5Test.dll两个文件拷贝到了发布文件夹中,我用的编译器是mingw73_64,在开发机上你试不出来,因为你的系统路径中有Qt的路径,程序会根据系统路径自动查找用到的dll文件,即便是你的发布文件夹中拷贝错了,系统也能找到对应的dll文件,但是在客户端上是没有Qt环境的,所以程序就找不到需要的dll文件了,应用程序文件夹中的dll文件又是不正确的,所以就报错了!
四、我的问题解决方法:拷贝mingw73_64\bin\Qt5OpenGL.dll和mingw73_64\bin\Qt5Test.dll到发布文件夹中即可解决。

秋风 写于淄博 业务联系与技术交流:Q375172665

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

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

相关文章

【c语言】自定义类型----结构体

结构体是c语言的一种自定义类型,自定义类型对于开发者及其重要的类型,它可以随意由开发者进行谱写功能,而今天的结构体可以用来表示一种变量的单个或多种具体属性,再编写代码时有着不可替代的作用!!&#x…

一个简单的消息队列

目录 原理 实现代码 示例 原理 消息队列是一个先进先出栈,每次都处理第一项,处理完了过后会删除这个消息,这是一个简单的消息队列图: 实现代码 首先消息队列需要一个队列,我们用Python里的列表: self.…

常见的api: BigInteger

一.获取一个大的随机整数 1.代码: BigInteger bd1 new BigInteger(4, new Random());System.out.println(bd1); 2.打印的结果:2 3.注释获取的是0-16之间的随机整数 二.获取一个指定的大的数 1.代码: BigInteger bd2 new BigInteger("100");System.o…

mybatis离谱bug乱转类型

字符串传入的参数被转成了int&#xff1a; Param("online") String online<if test"online 0">and (heart_time is null or heart_time <![CDATA[ < ]]> UNIX_TIMESTAMP(SUBDATE(now(),INTERVAL 8 MINUTE)) )</if><if test"…

人工智能--教育领域的运用

文章目录 &#x1f40b;引言 &#x1f40b;个性化学习 &#x1f988;体现&#xff1a; &#x1f988;技术解析&#xff1a; &#x1f40b;智能辅导与虚拟助手 &#x1f988;体现&#xff1a; &#x1f988;技术解析&#xff1a; &#x1f40b;自动评分与评估 &#x1f…

【react】useEffect 快速上手

useEffect 快速上手 useEffect(setup, dependencies?) 可以接收两个参数&#xff0c;分别是回调函数与依赖数组. useEffect 用什么姿势来调用&#xff0c;本质上取决于你想用它来达成什么样的效果。下面我们来简单介绍 useEffect 的调用规则。 每一次渲染后都执行的副作用&a…

国内拉取国外镜像方法

参考&#xff1a; https://mp.weixin.qq.com/s/-bDrC63J52oSEcIfGcQ7pw 1. github创建仓库 images-sysncer 2. 在此仓库中创建目录 .github/workflows 3. 在此目录中创建文件 sync-image-example.ymlvim sync-image-example.yml name: Sync Image to Aliyun Exampleon:pus…

植物大战僵尸杂交版最新2.0.88手机+电脑+苹果+修改器

在这个充满奇妙的平行宇宙中&#xff0c;植物和僵尸竟然能够和谐共存&#xff01;是的&#xff0c;你没听错&#xff01;一次意外的实验&#xff0c;让这两个看似对立的生物种类发生了基因杂交&#xff0c;创造出了全新的生物种类——它们既能够进行光合作用&#xff0c;也具备…

从零手写实现 nginx-11-文件处理逻辑与 range 范围查询合并

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

C语言中memset()以及memcpy()函数使用方法

memset( ) 在函数memset&#xff08;void *A&#xff0c;int B&#xff0c;int C&#xff09;&#xff1b;语句中&#xff0c;程序完成了将A指针指向的内容开始往后的C个字节内容置为B。 例如下列函数&#xff0c;最终结果是&#xff1a;cps数组内容为&#xff1a;2222222222…

2024年【R2移动式压力容器充装】考试技巧及R2移动式压力容器充装复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R2移动式压力容器充装考试技巧参考答案及R2移动式压力容器充装考试试题解析是安全生产模拟考试一点通题库老师及R2移动式压力容器充装操作证已考过的学员汇总&#xff0c;相对有效帮助R2移动式压力容器充装复审考试学…

Linux 35.5 + JetPack v5.1.3@RACER编译安装

Linux 35.5 JetPack v5.1.3RACER编译安装 1. 源由2. 编译&安装Step 1&#xff1a;依赖库安装Step 2&#xff1a;LKH-3安装Step 3&#xff1a;建立工程Step 4&#xff1a;编译工程Step 5&#xff1a;安装工程 3. 问题汇总3.1 组件ros-noetic-multi-map-server问题3.2 swarm…

监控系统如何选择交换机

一、基础知识 01 摄像机码流 选择交换机前&#xff0c;首先要弄清楚每路图像占用多少带宽&#xff0c;而这个就是码流。 02 摄像机的数量 要弄清楚交换机的带宽容量。常用交换机有百兆交换机、千兆交换机。它们的实际带宽一般只有理论值的 60~70% &#xff0c;所以它们端口的可…

记录:linux桌面管理基础-X11协议(X window system)

1、认识X11 X11是X协议&#xff0c;版本号为11。X协议是专门被设计为linux桌面管理服务的&#xff0c;而linux桌面环境不像windows那样作为系统内核的一部分&#xff0c;作为一个普通程序运行在用户态上。该协议的设计初衷是为了linux的图形界面满足跨平台、跨网络、与具体硬件…

回溯算法举例

回溯算法概述 回溯算法是一种系统地搜索问题解空间的方法,通过逐步构建解决方案,并在发现当前解不满足条件时回溯到上一步,从而尝试其他可能的解。回溯算法广泛应用于组合优化问题、约束满足问题等。 N皇后问题:将N个皇后放置在NN的棋盘上,使得它们互不攻击。数独:填充数…

Web前端岗位深度剖析:必备技能、挑战与未来展望

Web前端岗位深度剖析&#xff1a;必备技能、挑战与未来展望 在数字化飞速发展的今天&#xff0c;Web前端岗位已成为互联网行业的核心力量。它不仅仅是技术的代表&#xff0c;更是连接用户与产品、实现业务价值的关键环节。那么&#xff0c;Web前端岗位究竟要求什么&#xff1f…

DOM型xss靶场实验

DOM型xss可以使用js去控制标签中的内容。 我使用的是一个在线的dom型xss平台&#xff0c;靶场链接&#xff1a;Challenges 第一关Ma Spaghet!&#xff1a; Ma Spaghet! 关卡 <h2 id"spaghet"></h2> <script>spaghet.innerHTML (new URL(locatio…

【TB作品】msp430f5529单片机,dht22,温湿度传感器,OLED显示屏

使用DHT22温湿度传感器和OLED显示屏的单片机项目 博客名称 利用MSP430单片机读取DHT22并显示温湿度 作品功能 本项目利用MSP430单片机读取DHT22温湿度传感器的数据&#xff0c;并将温湿度信息显示在OLED显示屏上。通过这个项目&#xff0c;您可以学习如何使用单片机与传感器…

前端开发之中svg图标的使用和实例

svg图标的使用和实例 前言效果图1、安装插件2、vue3中使用2.1、 在components文件夹中,创建公共类SvgIcon/index.vue2.2、创建icons文件,存放svg图标和将所有的svg图标进行引用并注册成全局组件2.3、在man.js 中注册2.4、在vue.config.js中配置svg2.5、在vue中的调用svg图标3…

代码随想录第三十二天打卡|122.买卖股票的最佳时机II,55. 跳跃游戏,45.跳跃游戏II

122.买卖股票的最佳时机II 本题解法很巧妙&#xff0c;大家可以看题思考一下&#xff0c;在看题解。 代码随想录 class Solution { public:int maxProfit(vector<int>& prices) {int min_numINT_MAX;int res0;for (int i0;i<prices.size();i){if (prices[i]<m…