Qt--项目打包

news2024/11/25 13:39:48

项目打包

一款正常的软件产品应该在任何的计算机中运行,不需要单独安装Qt的开发环境,因此需要把之前的项目打包成一个安装包。

1. 设置应用图标

设置应用程序图标的操作步骤如下所示。

1. 下载一个图标图片,格式要求png。(png包含透明图层),分辨率建议256*256

2. 把png格式的图片转换为ico格式的图标文件。

PNG转ICO, 在线转换器 - 转换视频, 音乐, 图像, PDF - Office-Converter.comPNG转ICO, 在线转换器 - 转换视频, 音乐, 图像, PDF - Office-Converter.com, 使用这款免费快速在线转换器. 将pdf, 图像, 视频, 文档, 音频, 电子书及压缩等文件格式转换为其他格式。现支持超过20200多种不同格式转换。https://cn.office-converter.com/png-to-ico

Convertio — 文件转换器Convertio - 在线转换文件的简单工具。支持超过309种不同的文档、图像、电子表格、电子书、文档、演示文稿、音频和视频格式。https://convertio.co/zh/

3. 把ico文件放置到项目的工作目录中。

4. 在Qt Creator中选中项目名称,鼠标右键,点击添加新文件。

5. 在弹出的窗口中,按照下图所示进行操作。

6. 在弹出的窗口中,给文件命名为 .rc格式(一定要写格式!!!)后,点击“下一步”。

7. 在项目管理界面点击“完成”。可以看到项目中多了一个.rc文件。

8. 双击进入.rc文件的编辑状态,增加下面一行配置代码:

IDI_ICON1 ICON DISCARDABLE "XXX.ico"

XXX.ico是你的exe程序图标文件名。

9. 进入.pro项目配置文件,增加下面的配置项:

RC_FILE += XXX.rc

XXX.rc是刚刚新建的rc文件名。

10. 重新编译并运行项目,观察图标设置情况。

 

2. Debug与Release模式

Qt项目构建有两种模式:Debug模式与Release模式。

  • Debug模式

是默认的构架模式,此模式适合开发者使用。因为生成的exe文件中包含了很多调试信息,运行速度比较慢,体积比较大。

  • Release模式

此模式适合发布给用户使用,通常不包含调试信息,但是生成的可执行文件体积小,并且编译器会做专门的优化,运行速度比Debug模式快。

无论是Debug模式还是Release模式,直接从构建目录中双击运行exe文件通常都不会正常运行,会弹出一些QMessageBox

3. 动态链接库

之所以能在Qt Creator中运行项目代码,实际上是因为Qt的开发环境中包含了Qt的源代码文件,开发者的编写程序,通过API调用了这些源代码,从而保证各种功能的正常执行。

并不是所有的计算机都会安装Qt开发环境,因此把Qt源代码封装为.dll动态动态链接库文件,跟随exe文件一并打包即可使exe文件正常文件。

需要注意的是,只有Release模式下编译生成的exe文件才支持dll格式。

只需要把exe文件与dll文件放置到同一个目录中即可,在这种发布的结构下,这个目录被称为软件的根目录,充当了开发过程的工作目录与构建目录的角色,这代表了根目录中要包含图片文件、qrc文件、.db文件等。

补充dll的方法有两种:

  • 使用老师基于当前Qt版本提取的常用的dll文件

这种方法操作简单,但是体积比较大,因为有一些dll项目用不到。

  • 使用Qt自带的windeployqt工具提取exe所需的dll文件

操作步骤如下:

1. 点击Win图标,进入所有应用,找到Qt下面的

2. 在黑窗口(命令行)中定位到exe文件所在的位置。

dir                    显示当前目录的内容
cd 文件夹名称            进入当前目录的子文件夹
cd..                  进入当前目录的上一级
盘符                    切换磁盘

3. 定位到exe所在目录后,执行下面的命令。

windeployqt 程序名称.exe

4. 再次尝试运行exe文件还是无法运行,此时需要手动“缺啥补啥”。注意计算机同文件名的dll动态链接库文件大小可能不同,请擦亮眼睛!

5.补全文件后点击.exe文件即可运行。

4.程序打包

程序打包工具不是Qt的内容,市面上有很多类似的软件。

打包教程可以参考:

QT 程序使用iSetup打包成setup安装包_isetup的使用_小五呀~的博客-CSDN博客

 

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

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

相关文章

学习Python的day.13

输入和输出 一、输入 标准输入:从键盘输入 input(promptNone) # prompt: 输入的提示符,可以为空 Read a string from standard input --- 译为:从标准输入读入一个字符串,输入读取的一定是字符串,返回值就是一个字符串 那我们…

基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic

摘 要 最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的…

多态与虚函数

多态与虚函数 多态的引入多态与虚函数多态编译时多态运行时多态 多态的原理静态联编和动态联编 多态的引入 学过C继承的话应该都知道在继承中存在一种菱形继承,假设存在一个类(person),其派生出两个子类,分别是studen…

Template Method模式

文章目录 💡前言分类优点 💡问题引入💡概念💡例子💡总结 💡前言 此文是第一篇讲解设计模式的文章,而笔者我又不想另起一篇来概述设计模式的分类,作用,以及优点&#xff…

MySQL笔记(四) 函数、变量、存储过程、游标、索引、存储引擎、数据库维护、指定字符集、锁机制

MySQL笔记(四) 文章目录 MySQL笔记(四)函数文本处理函数日期和时间处理函数数值处理函数类型转换函数流程控制函数自定义函数基本语法 局部变量全局变量聚集函数 aggregate functionDISTINCT 存储过程为什么要使用使用创建 删除建…

调用api实现ChatGPT接口余额查询

先打个广告: 推荐一款不用科学上网就可以使用的ChatGPT工具:智能聊天助手 体验版入口:智能聊天助手体验版 在ChatGPT官网可以查询接口使用额度,但是官方并没有提供相应的API给开发者调用。但是可以通过破解的方式找到它的API。方法…

人生在世皆有过错,来一起看看Java中的异常吧!!!

Java中的异常问题详解 一、异常的概念与分类 1.异常概念 概念:Java异常是一个描述在代码段中发生异常的对象,当发生异常情况时,一个代表该异常的对象被创建并且在导致该异常的方法中被抛出,而该方法可以选择自己处理异常或者传…

Invicti v23.5 for Windows 发布 - 企业应用安全测试

Invicti v23.5 for Windows - 企业应用安全测试 Invicti Standard 11 May 2023 v23.5.0.40516 请访问原文链接:https://sysin.org/blog/invicti/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Invicti 是一种自动…

[HFCTF2022]ezchain

环境分析 环境提供了docker-compose.yml,nginx.conf文件,从两个文件中可疑分析出是不出网的环境 nginx.conf: server { listen 80;server_name localhost;location / {root /usr/share/nginx/html; #收到/路径请求会访问/usr/sha…

Keil5----Debug时,watch1中全局变量数值不刷新问题解决方法

问题: 在Keil5-MDK中,Debug时,watch1中全局变量数值不刷新。 解决方法: 步骤1:进入Debug模式 将程序调试下载器(STlink,Jlink,Ulink)连接,编译程序后。 进行如下操作&#xff1a…

算法修炼之练气篇——练气十六层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…

MySQL --- 多表查询

多表查询、事物、以及提升查询效率最有手段的索引 一. 多表查询 1.1 多表查询 --- 概述 1.1.1 数据准备 将资料中准备好的多表查询数据准备的SQL脚本导入数据库中。 部门表: 员工表: 1.1.2 介绍 多表查询:指从多张表中查询数据&#…

2023年的深度学习入门指南(13) - 写后端

2023年的深度学习入门指南(13) - 写后端 我们前面学习了用python在本机上写前端,也学习了使用HTML在本机写前端。同理,我们可以写Windows应用,mac应用,iOS应用,Android应用等等以适合各种终端。其实,最通用…

python+chrome rpc方式轻松绕过五秒盾(cloudflare)

Cloudflare 5秒盾是一种基于云技术的Web应用程序防火墙(WAF),旨在保护网站免受各种Web攻击,如SQL注入、跨站点脚本(XSS)和DDoS攻击。它能够在5秒内检测到并阻止恶意流量,并提供实时安全警报和日志记录。此外,它还提供了一系列安全功能,包括SSL / TLS加密、IP过滤、访问…

单链表你别再找我了,我怕双向链表误会

目录 带头双向循环链表的创建和初始化 创建一个新的结点(方便复用) 链表判空 链表打印 链表尾插 链表尾删 链表头插 链表头删 任意插入 任意删除 链表查找 链表销毁 完整代码 😎前言 之前我们讲了结构最简单,实现起来…

kettle win11 启动闪退 --启动日志

一、启动闪退 思路: 找原因找启动日志根据启动日志查看启动失败的原因 二、找启动日志 采用debug模式启动 查看控制台–根据控制台操作 看生成的启动日志文件 查看日志 DEBUG: Using PENTAHO_JAVA_HOME DEBUG: _PENTAHO_JAVA_HOMEE:\java8 DEBUG: _PENTAHO…

记一次靶场搭建与渗透测试

渗透目标 通过Windows7打入工作组环境,穿透两层内网拿到DC(域控制器)权限 环境搭建 环境搭建 网络拓扑 虚拟机网络配置 渗透测试 永恒之蓝外网打点 nmap -sS 192.168.2.0/24扫描外网存活主机,发现两台主机192.168.2.128和192…

芯片电源附近为什么放置的是0.1uF电容

日常使用情况 我们在电源滤波电路上可以看到各种各样的电容,100uF、10uF、100nF、10nF不同的容值,而在我们使用中常常会在芯片电源附近放置0.1uF电容,以TB67S109AFNG应用手册为例,其中推荐使用的也是0.1uF的电容 电容的特性 数字…

分享几款小白从零开始学习的会用到的工具/网站

大二狗接触编程也有两年了,差生文具多这大众都认可的一句话,在这里蹭一下这个活动分享一下从0开始学习编程有啥好用的工具 目录 伴侣一、Snipaste截图工具 伴侣二、Postman软件(可用ApiPost平替) 伴侣三、字体图标网站 伴侣四…

BlockChain-Account_TakeOver

题目描述 ECDSA 签名 假设我们的私钥为 d A d_A dA​而公钥为 Q A Q_A QA​, Q A d A ⋅ G Q_Ad_A\cdot G QA​dA​⋅G,接下来就是签名的过程,要签名的消息为 m m m 取 e H A S H ( m ) e HASH(m) eHASH(m)取 e e e的左边的 L n L_n L…