Qt程序打包成一个单独exe的方法

news2025/7/9 13:19:45

目录

Qt程序打包成一个单独exe的方法

程序发布

程序打包

问题


Qt程序打包成一个单独exe的方法

Qt程序发布及打包,同时修改可执行文件的图标。本教程使用Qt自带的 windeployqt 工具外加Enigma Virtual Box打包工具。首先需要知道的是,Qt程序发布需要的程序是用 Release 方式编译的。下面看一下具体的操作。

改变exe的图标
1、下载一个.ico格式的图标(如:exe_ico.ico),将exe_ico.ico复制到工程目录下。
2、工程目录下新建一个空白txt文档,文档内添加如下内容
IDI_ICON1 ICON DISCARDABLE "exe_ico.ico"
3、将文档后缀修改为.rc(如:exe_ico.rc)
4、在工程的pro文件添加如下内容
RC_FILE = exe_ico.rc
另注:使用VS+Qt的开发方式:在编辑器上的项目目录(Resource Files)添加exe_ico.rc文件即可。
5、重新编译程序,即可发现生成的程序图标变成了exe_ico.ico

程序发布

1、首先将Release方式生成的exe复制到一个单独的文件夹下,如E盘根文件下的demo文件夹内。
2、开始菜单找到Qt目录下的Qt 5.5 for Desktop (MinGW 4.9.2 32 bit)打开命令行;
3、命令行进入步骤1新建的demo目录内

进入demo文件夹
4、输入windeployqt 项目名.exe(如windeployqt QtTest.exe)

 这里写图片描述
5、进行到这,Qt程序所需要的库都添加完成。但是有一部分是用不到的,想删除的可以用程序依赖关系查看软件来查看哪些文件用不到,感兴趣的自己去百度吧。

或者 1、将Release方式生成的exe复制到一个单独的文件夹下,如D盘根文件下的D:\SW_DEV\QT\Release_exe_temp文件夹内。

2、打开命令行工具cmd,进入windeployqt.exe目录(C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin>windeployqt.exe),使用 windeployqt 对生成的exe 文件进行打配置动态库文件; 

3、C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin>windeployqt.exe D:\SW_DEV\QT\Release_exe_temp\MODBUS.exe

程序打包

安装Enigma virtual box工具(安装过程一直next就行)

Enigma virtual box官方链接:https://enigmaprotector.com/en/downloads.html

1、打开提前安装好的Enigma Virtual Box。具体操作如下:
这里写图片描述

 2、如上图
1)浏览打开demo下的Test.exe文件


2)点击增加,选择递归添加文件,选中demo文件夹点击确定


3)点击文件选项,选中压缩文件


4)点击执行封包。


3、将封包后的程序复制到其他地方,打开测试,结束。

问题

之前打包很顺利,没有出现问题。这次换了一台电脑,就出现了问题:

打包完成后,程序无法运行,报错:

 百度了一会儿,有人说是因为:

使用enigmavb打包程序时,包含的根目录应该与待封包的主程序同级目录,不然会报错Cannot load library QT5Core.dll
同样的程序,下图右边不报错,左边报错

在这里插入图片描述

 我打包时不存在这个问题,还是会报错,所以不是这个原因;

最终确认是环境变量的问题:

因为安装QT时没有设置环境变量

开始-计算机-右键-属性-高级系统设置,高级选项卡-环境变量-系统变量

在系统变量里面找到Path,点击编辑,在弹出的对话框中点击新建,根据自己的QT安装位置,输入类似C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin,后一路点击确定即可。

设置完就可以运行了
 

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

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

相关文章

【MM小贴士】物料主数据的中止与后继(3)

话不多说,直接上3, 前两篇的blog可以参考: 【MM小贴士】物料主数据的中止与后继(1)_竹大的博客-CSDN博客https://yanshoushuai.blog.csdn.net/article/details/125660495【MM小贴士】物料主数据的中止与后继(2)_竹大的博客-CSDN博客https:/…

QT 事件处理

03 Qt中是事件处理_哔哩哔哩_bilibili 1&#xff0c;新加mylabel文件&#xff0c;并 修改mylabe的基类QLabel 2 label提升为类 3&#xff0c;鼠标事件 myLabel.h #ifndef MYLABEL_H #define MYLABEL_H#include <QLabel>class myLabel : public QLabel {Q_OBJECT public…

TCP三次握手四次挥手简介

TCP三次握手四次挥手简介 图解三次握手、四次挥手 建立连接&#xff1a;三次握手 关闭连接&#xff1a;四次挥手 上图传递过程中出现的几个字符&#xff08;SYN,ACK,FIN,seq,ack&#xff09;各代表什么意思 SYN&#xff0c;ACK&#xff0c;FIN存放在TCP的标志位(标志位一共有…

【设计模式】设计模式的七大原则

目录标题4. 设计模式的七大原则4.1 开闭原则&#xff08;对扩展开发&#xff0c;对修改关闭&#xff1a;需要接口和抽象类来实现&#xff09;Demo: 搜狗输入法 的皮肤设计4.2 里氏替换原则&#xff08;任何基类可以出现的地方&#xff0c;子类一定可以出现&#xff1a;尽量不要…

[Redis]-四种部署方式

森格 | 2022年11月 本文是对Redis部署方式的学习&#xff0c;主要学习基本原理&#xff0c;以及几种方式的优缺点。 一、部署方式概况 对于Redis的安装部署主要可以分为单机版、主从同步、Sentinel哨兵、Cluster集群部署四种方式&#xff0c;下面一起看下几种方式的优缺点。 二…

Python闭包

目录 变量作用域规则(LEGB规则) 闭包 闭包的用途 &#xff08;一&#xff09;读取函数内部的变量 &#xff08;二&#xff09;让函数内部的局部变量始终保持在内存中 &#xff08;三&#xff09;总结 变量作用域规则(LEGB规则) 在下面的实例中,我们定义一个测试函数,它读取…

112. 路径总和

文章目录2.示例3.答案①递归②BFS③DFS给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返…

智慧电力解决方案-最新全套文件

智慧电力解决方案-最新全套文件一、建设背景二、建设思路三、建设方案四、获取 - 智慧电力全套最新解决方案合集一、建设背景 电力能源是支撑整个社会运行的最重要基础体系之一。伴随着经济和社会生活的发展&#xff0c;人们对电力需求不断增长&#xff0c;同时随着能源需求日…

docker 安装 portainer 来管理容器 (记录 1)

docker 安装 portainer 来管理容器 &#xff08;记录 1&#xff09; 初docker 安装 portainer前置条件&#xff1a;安装docker下载镜像 portainer部署容器配置进入监控初 希望能写一些简单的教程和案例分享给需要的人 docker 安装 portainer 前置条件&#xff1a;安装docker…

【JavaSE】异常处理

文章目录什么是异常异常的分类异常的处理流程throw异常的抛出throws 和 try-catch捕获异常finally自定义异常类什么是异常 在生活中我们头疼脑热都是身体出现的异常&#xff0c;在代码中也是一样的&#xff0c;尽管程序员在写代码时已经非常追求完美&#xff0c;但是总会有一些…

【真北读书】弗兰克意义三途径,让你人生的意义不漂移

维克多弗兰克&#xff0c;意义疗法创始人&#xff0c;出生于奥地利维也纳一个贫困的犹太人家庭。弗兰克15岁时质疑化学老师说的生命只是化学燃料&#xff0c;开始思考生命的意义&#xff0c;曾学习弗洛伊德、阿德勒、海德格尔和尼采&#xff0c;在被囚禁之前&#xff0c;已形成…

终于有人把大数据的相关知识讲全了(大数据基础框架、数据库、大数据分析分布式技术),从入门到进阶全部涵盖了!

前言 经常有初学者在博客和微信问我&#xff0c;自己想往大数据方向发展&#xff0c;该学哪些技术&#xff0c;学习路线是什么样的&#xff0c;觉得大数据很火&#xff0c;就业很好&#xff0c;薪资很高。如果自己很迷茫&#xff0c;为了这些原因想往大数据方向发展&#xff0…

用VB设计年级人员管理系统

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 课题研究背景 1 1.2 课题研究目的和任务 1 1.3 课题研究的意义 2 1.4 论文的主要内容和章节安排 2 第二章 运行环境开发工具 3 2.1 运行环境 3 2.2 开发工具简介 3 2.2.1 VB6.0基础 3 2.2.2 SQL Server2000数据库基础 3 第三章 需…

【HDU No. 2874】 城市之间的联系 Connections between cities

【HDU No. 2874】 城市之间的联系 Connections between cities 杭电OJ 题目地址 【题意】 由于大部分道路在战争期间已被完全摧毁&#xff0c;所以两个城市之间可能没有路径&#xff0c;也没有环。 已知道路状况&#xff0c;想知道任意两个城市之间是否存在路径。若答案是肯…

11.一键分析你的上网行为(web页面可视化)

## 一键分析你的上网行为, 看看你平时上网都在干嘛? ## Chrome浏览器历史记录文件可视化### 简介**想看看你最近一年都在干嘛&#xff1f;看看你平时上网是在摸鱼还是认真工作&#xff1f;想写年度汇报总结&#xff0c;但是苦于没有数据&#xff1f;现在&#xff0c;它来了。*…

国外顶尖程序员手写,402页汉译版微服务与事件驱动架构开发手册

为什么用事件驱动型微服务&#xff1f; Marshall McLuhan认为&#xff0c;影响人类并给社会带来根本性变革的不是媒介的内容&#xff0c;而是与媒介的互动过程。在我们的集体参与下&#xff0c;报纸、广播、电视、互联网、即时通信和社交媒体改变了人类的互动方式以及社会结构…

JDK17新特性

一.JEP 409: Sealed Classes 1.1简介 官网链接sealed class 从如下官网的简介与描述可以看出&#xff0c;这个新特性的目的是为了限制类与接口的 被继承与实现&#xff0c;比如说我有个 A类&#xff0c;那么我现在限定只有 B&#xff0c;C&#xff0c;D三个类可以继承 那么就需…

DRM架构介绍(一)

1、 DRM简介&#xff08;Direct Rendering Manager&#xff09;传统linux显示设备驱动开发时&#xff0c;通常使用FB驱动架构&#xff0c;随着显卡性能升级&#xff1a;显示覆盖&#xff08;菜单层级&#xff09;、GPU加速、硬件光标&#xff0c;传统FB架构无法很好支持&#x…

activiti-bpmn-converter

activiti-bpmn-converter目录概述需求&#xff1a;设计思路实现思路分析1.BpmnXMLConstants2.BpmnXMLConverter3.StartEventXMLConverter4.EndEventXMLConverter参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full bu…

C++调用OpenCV实现图像平滑处理

1 前言 图像的平滑处理&#xff0c;也叫做模糊处理&#xff0c;是在尽量保留原始图像信息的情况下&#xff0c;抑制或去除图像内的噪声、降低细节层次信息等一系列过程。是一种操作简单但使用频率很高的图像处理方法。由于实际的图像索引方式&#xff0c;与我们常用的x和y轴的…