第十五课、Windows 下打包发布 Qt 应用程序

news2024/9/23 11:19:16

功能描述:讲解了 Windows 下打包发布 Qt 应用程序的三种方法,并对比优缺点

一、利用 windepolyqt 工具打包发布

Qt 提供了一个 windeployqt 工具来自动创建可部署的文件夹。

打包发布流程:

1. 新建一个文件夹,将编译后的可执行程序拷贝到该文件夹中,以 QSshDemo.exe 应用程序为例,新建一个 QSsh-exe 文件夹,将 release 文件夹下的 QSshDemo.exe 文件拷贝到 QSsh-exe 文件夹下;

2. 查看本应用程序是由哪个编译器编译,去 Qt 安装目录相应编译器名称目录下的 bin 文件夹下寻找 windeployqt.exe 文件,如:路径为 xxx/Qt5.10.0/5.10.0/mingw53_32/bin, windeployqt.exe 文件拷贝到应用程序的同级目录下。QSshDemo.exe 由 Qt 5.10.0 的 MinGW 编译器编译,所以到 xxx(Qt 安装目录根目录)/Qt5.10.0/5.10.0/mingw53_32/bin 目录下,将 windeployqt.exe 文件复制粘到 QSshDemo.exe 的同级目录下;

3. 在搜索框中输入 “cmd” 回车,或者在“开始”菜单打开“命令提示符”,通过 cd 指令切换到应用程序文件夹下,如切换到 QSsh-exe 文件夹下;

 4. 执行 windeployqt 打包指令格式为:windeployqt.exe +空格+应用程序名称.exe

命令格式:windeployqt.exe 应用程序名称.exe
windeployqt.exe QSshDemo.exe

5. 如果应用程序仅依赖 Qt 自身动态库,则到此结束,双击应用程序即可运行;如果应用程序还依赖其它第三方库,则需要手动将第三方库拷贝到此文件夹下,注意:此处的第三方库必须和应用程序是同一种编译器编译。QSshDemo.exe 还依赖 QSsh 动态库,所以手动将这个动态库拷贝到QSsh-exe 文件夹下。

6. 到此,应用程序打包发布完成,为了减小应用程序发布文件夹的大小,建议删除 windeployqt.exe文件,双击 QSshDemo.exe 即可运行程序。

7. 此文件包含了应用程序所需的所有文件,将此文件夹提供给用户,用户可放到系统中任何位置,双击应用程序即可运行;也可通过选中该应用程序,右键菜单选择“发送到” -> “桌面快捷方式”,双击桌面快捷方式亦可运行。

优点:操作简单,一个指令搞定所有依赖文件

缺点:并不是所有文件都是该应用程序所必需的,发布打包文件会浪费一些存储空间

二、逐个拷贝应用程序依赖库

顾名思义,此方法是应用程序缺什么依赖库就拷贝对应的依赖库,直到程序能成功运行。

打包发布流程:

1. 新建一个文件夹,将编译后的可执行程序拷贝到该文件夹中,以 QSshDemo.exe 应用程序为例,新建一个 QSsh-exe 文件夹,将 release 文件夹下的 QSshDemo.exe 文件拷贝到 QSsh-exe 文件夹下;

2. 双击运行 QSshDemo.exe 应用程序,查看是否成功运行,如果不能成功运行,查看缺少什么依赖库

3. 将缺少的依赖库依次复制粘贴到应用程序的同级目录下,以 QSshDemo.exe 应用程序为例,将 Qssh.dll 复制粘贴到 QSsh-exe 文件夹下;

4. 重复第 2 步和第 3 步的操作,直到应用程序成功运行

 

 

5. 依次将 Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll、libgcc_s_dw2-1.dll、Qt5Network.dll、libstdc++-6.dll、libwinpthread-1.dll 拷贝到 QSsh-exe 文件夹下,QSshDemo.exe 即可成功运行。

 

优点:发布打包文件仅包含必需依赖库,体积较小

缺点:逐个拷贝依赖库,操作相对麻烦

 

、静态发布

将 Qt 的所有库重新编译,全部编译为静态库,然后用静态编译的 Qt 库来链接应用程序,这样生成的应用程序就可以直接运行,而不需要 .dll 文件的支持。不过这样生成的 exe 文件会很大,而且静态编译缺乏灵活性,也不能部署插件。

因此,静态发布方式了解即可,不推荐使用!

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

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

相关文章

基于缎蓝园丁鸟算法优化的BP神经网络(预测应用) - 附代码

基于缎蓝园丁鸟算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于缎蓝园丁鸟算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.缎蓝园丁鸟优化BP神经网络2.1 BP神经网络参数设置2.2 缎蓝园丁鸟算法应用 4.测试结果&…

剪枝基础与实战(2): L1和L2正则化及BatchNormalization讲解

1. CIFAR10 数据集 CIFAR10 是深度学习入门最先接触到的数据集之一,主要用于图像分类任务中,该数据集总共有10个类别。 图片数量:6w 张图片宽高:32x32图片类别:10Trainset: 5w 张,5 个训练块Testset: 1w 张,1 个测试块Pytorch 集成了很多常见数据集的API, 可以通过py…

【Unity】2D平台游戏初中级教程-笔记补充

文章目录 观前提醒链接地址百度网盘(第3、4、5章的Asset内容) 为什么要弄这篇博客?章节内容提示本人制作的环境 第1章:玩家控制器Part1:设置瓦片地图与分类层的顺序【1】导入素材【2】制作瓦片地图【3】调色盘与瓦片存…

让智慧城市更进一步,无人机解决方案全面应用

在城市规划中,无人机正在颠覆传统的操作和思维方式。这种技术不仅改变了城市管理获取和分析信息的方式,还提供了前所未有的视角,使城市管理能够更加明智地制定策略。 1. 数据采集的新纪元: 城市规划的核心在于数据的收集和分析。…

Python“牵手”微店商品详情数据采集方法,微店API申请步骤说明

微店平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范。 微店API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问微店平台的数据,包括商品信息、店铺信息、物流信息,评论数据,店铺订…

云聊天项目测试

前言 以下将对云聊天项目编写测试用例以及主要功能的自动化测试。 1. 测试用例的编写 2. 自动化测试 以下进行部分自动化测试用例的执行,检验项目功能是否符合预期。 2.1 登录功能测试 测试代码: 输入非法用户名或密码逻辑相似,不重复描…

wustojc3001求三角形面积

#include <stdio.h> #include <math.h> int main() {float a,b,c,d;double s;scanf("%f%f%f",&a,&b,&c);if(ab>c&&ac>b&&cb>a){d(abc)/2;ssqrt(d*(d-a)*(d-b)*(d-c));//数学公式printf("%.2f",s);}retur…

听GPT 讲Alertmanager源代码--dispatch/silence/inhibit等

目前Alertmanager项目共计53M大小&#xff0c;其中.git占了46M&#xff0c;总的go代码行数不足6万行(包括.pb.go等文件)&#xff0c;不算是一个大项目。 但实现了告警的分发&#xff0c;静默等功能&#xff0c;值的研究&#xff0c;尤其是dispatch中的route部分。 在Prometheus…

使用 Terraform 与事件驱动的 Amazon CodeBuild 提升云上数据应用运维效率

背景信息 企业客户在云上部署的一系列数据应用的过程中&#xff0c;数据开发团队往往负责脚本内容&#xff0c;而其背后一系列云上资源的管理通常由一支云运维职能团队通过 IaC&#xff08;Infrastructre as Code&#xff09;实现。然而&#xff0c;当数据开发团队开发及部署相…

商城-学习整理-高级-商城业务-Sentinel限流熔断降级Sleuth+Zipkin链路追踪(二十二)

目录 一、秒杀系统的架构二、SpringCloud Alibaba-Sentinel简介1、熔断降级限流什么是熔断什么是降级异同&#xff1a;什么是限流 2、Sentinel 简介官方文档&#xff1a;Sentinel 具有以下特征:Sentinel 分为两个部分: 3、Hystrix 与 Sentinel 比较4、整合 FeignSentinel 测试熔…

Qt与电脑管家4

折线图&#xff1a; #ifndef LINE_CHART_H #define LINE_CHART_H#include <QWidget> #include <QPainter> #include "circle.h" class line_chart : public QWidget {Q_OBJECT public:explicit line_chart(QWidget *parent nullptr); protected:void pa…

SecureBridge安全文件下载的组件Crack

SecureBridge安全文件下载的组件Crack SecureBridge包括SSH、SSL和SFTP客户端和服务器组件。它使用SSH或SSL安全传输层协议和加密消息语法来保护任何TCP流量&#xff0c;这些协议为客户端和服务器提供身份验证、强数据加密和数据完整性验证。SecureBridge组件可以与数据访问组件…

汽水问题!!!!

目录 题目要求&#xff1a; 题目分析&#xff1a; 代码演示&#xff1a; ​ 题目要求&#xff1a; ⽔已知1瓶汽⽔1元&#xff0c;2个空瓶可以换⼀瓶汽⽔&#xff0c;输⼊整数n&#xff08;n>0&#xff09;&#xff0c;表⽰n元钱&#xff0c;计算可以多少汽 ⽔&#xff0…

四款源代码扫描工具

一、DMSCA-企业级静态源代码扫描分析服务平台 端玛企业级静态源代码扫描分析服务平台&#xff08;英文简称&#xff1a;DMSCA&#xff09;是一个独特的源代码安全漏洞、质量缺陷和逻辑缺陷扫描分析服务平台。该平台可用于识别、跟踪和修复在源代码中的技术和逻辑上的缺陷&…

【STM32】串口通信乱码(认识系统时钟来源)

使用 stm32f407 与电脑主机进行串口通信时&#xff0c;串口助手打印乱码&#xff0c;主要从以下方面进行排查&#xff1a; 检查传输协议设置是否一致&#xff08;波特率、数据位、停止位、校验位&#xff09;检查MCU外部晶振频率是否和库函数设置的一致 最终发现是外部晶振频…

蓝桥杯上岸每日N题 (闯关)

大家好 我是寸铁 希望这篇题解对你有用&#xff0c;麻烦动动手指点个赞或关注&#xff0c;感谢您的关注 不清楚蓝桥杯考什么的点点下方&#x1f447; 考点秘籍 想背纯享模版的伙伴们点点下方&#x1f447; 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不…

Linux命令200例:telnet用于远程登录的网络协议(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

华为擎云“磨刀”,政企数字化转型“砍柴”

文|智能相对论 作者|李永华 毫无疑问&#xff0c;消费级硬件已进入稳态式红海竞争格局&#xff0c;惨烈厮杀的同时各厂商的市场地位又相对固定。 这意味着机会少的同时困难大。 于是&#xff0c;越来越多终端厂商将着力点之一转向商用市场。 华为就是其中之一。 2023年3月…

常用的软件测试工具清单,建议收藏。

常用的测试工具有10类&#xff1a; 1.测试管理工具 2.接口测试工具 3.性能测试工具 4.C/S自动化工具 5.白盒测试工具 6.代码扫描工具 7.持续集成工具 8.网络测试工具 9.app自动化工具 10.web安全测试工具 1.测试管理工具 1&#xff0c;TestDirector(大而全) 2&…

1. HBase中文学习手册之揭开Hbase的神秘面纱

揭开Hbase的神秘面纱 1.1 欢迎使用 Apache Hbase1.1.1 什么是 Hbase?1.1.2 Hbase的前世今生1.1.3 HBase的技术选型&#xff1f;1.1.3.1 不适合使用 HBase的场景1.1.3.2 适合使用 HBase的场景 1.1.4 HBase的特点1.1.4.1 HBase的优点1.1.4.2 HBase的缺点 1.1.5 HBase设计架构 1.…