C++常用的支持中文的GUI库Qt 6之三: 项目的发布

news/2024/11/17 6:38:01/

C++常用的支持中文的GUIQt 6之三: 项目的发布

本文接着上一篇“C++常用的支持中文的GUI库Qt 6之二:项目的结构、资源文件的使用” https://blog.csdn.net/cnds123/article/details/130741807介绍,并使用其中的例子。

程序代码能正确编译运行,就可以考虑项目的发布了。

发布 Qt 程序需要考虑多种因素。您需要了解目标平台的要求,了解如何编译和打包程序,并能够管理其依赖项和发布版本。

Qt Creator将项目源文件和编译生成的文件进行了分类存放。初学者常常找不到生成的可执行文件.exe在哪儿。

在Qt Creator中,生成的可执行文件(.exe文件)默认会放在项目的构建目录中。构建目录的位置可以在Qt Creator的项目设置中进行配置。

构建和运行(Build & Run)目录

Qt Creator将项目源文件和编译生成的文件进行了分类存放。构建目录用于存放此项目在编译过程中生成的文件,例如数据库文件、可执行文件等。

查看或修改构建目录

在Qt Creator中查看或修改项目的构建目录,参见下图,按照以下步骤操作:

打开Qt Creator并加载你的项目。

在左侧面板中,选择“Projects(项目)” 图标(通常显示为一个扳手图标)。

在“项目”选项卡中,根据实际情况查看或修改构建目录

保存更改后,下次构建时,项目将使用新的构建目录进行编译。

注意:修改构建目录会影响之前构建产物的存放位置,可能需要重新构建项目以确保之前的构建产物被更新。在某些情况下,可能需要执行清理操作(在顶部菜单栏上点击“构建”>“清理项目”),以防止因旧构建文件而导致的问题。

构建模式(构建版本)

Qt提供了三种不同的构建模式(构建版本):Debug、Profile和Release。这些模式涉及不同的编译选项和优化设置,用于满足开发过程中不同阶段的需求。

Debug(调试)模式:

Debug模式主要用于开发和调试应用程序。它使用额外的信息(如调试符号),使开发者能够更轻松地定位和解决代码问题。在Debug模式下,编译器通常不会执行任何优化操作,以确保代码的行为与预期一致。此配置下生成的可执行文件体积较大,运行速度较慢。而Debug模式下的项目可以结合调试器,在运行时进行断点调试、内存分析等操作。

Profile(性能分析)模式:

Profile模式类似于Debug模式,但包含了额外的性能分析工具(如性能计数器和跟踪器)。这些工具允许开发者检查应用程序的性能瓶颈和资源消耗。在Profile模式下,编译器可能会执行某些优化,以便更接近实际的运行环境。然而,这种模式仍然包含调试信息,因此可执行文件体积仍然较大。Profile模式适用于需要对代码进行性能分析和调整的场景。

Release(发布)模式:

Release模式用于准备应用程序的最终版本。在Release模式下,编译器将执行各种优化操作,以提高应用程序的执行速度和减小文件大小。这种模式下的可执行文件不包含调试信息,因此体积较小,运行速度较快。然而,由于缺少调试信息,使用调试器定位问题变得困难。Release模式通常用于生成可以分发给用户的应用程序版本。

在Qt Creator中,你可以从构建模式下拉菜单中选择需要的构建模式(通常位于左下角)。选择合适的模式后,点击“构建”图标进行编译。请注意,在切换构建模式时,确保对应的构建目录已被正确设置。

将想要发布的应用程序,使用release模式下编译,然后生成可执行文件。

使用Release模式进行编译

请注意,在使用Release模式编译应用程序时,确保你已正确设置了项目,并解决了所有编译警告和错误。

在Qt Creator中使用Release模式进行编译,请按照以下步骤操作:

打开Qt Creator并加载你的项目。

在左下角,找到构建模式切换器。它通常显示为一个下拉菜单,可以在Debug、Profile和Release模式之间切换。

从下拉菜单中选择“Release”模式。此时,Qt Creator将使用Release模式设置对项目进行编译。

若要开始编译,点击顶部工具栏上的绿色播放图标旁边的锤子图标(或者按快捷键Ctrl+B或Cmd+B,或从顶部菜单栏选择“构建”>“构建项目”)。

Qt Creator将使用Release模式进行编译。编译完成后,你可以在构建目录下的"release"子文件夹中找到生成的可执行文件。

在构建目录下的"release"子文件夹中找到生成的可执行文件,我这里是ch01.exe。到此,还不能使用,双击它运行会报错,往下看。

项目的发布

如何让上面ch01.exe让他人使用呢?先不要高兴太早,往下看。

使用QT Creator创建的项目,可以在QT Creator中启动运行,但在"release"子文件夹中双击ch01.exe,文件,却提示系统错误:

怎么办?往下看,手工建立一个文件夹如MyQt,将Qt安装目录下 6.2.4\mingw_64 (其中6.2.4是Qt版本号,据你的实际情况而定)文件夹中的bin文件夹和plugins文件夹复制到MyQt文件夹中,然后将ch01.exe复制到MyQt文件夹这的bin文件夹,就可以将MyQt文件夹给他人用了。其中ch01.exe可以改名。将这个文件夹发给一个没有安装过Qt 的电脑,也可以打开。不过这样发布包含的无用的文件较多,也不太专业。

下面介绍使用Qt的windeployqt工具发布

windeployqt.exe是Qt自带的Windows平台发布工具,用于创建应用程序发布包,它可以自动为一个应用程序复制其运行所需的各种库文件、插件。官方介绍Qt for Windows - Deployment | Qt 6.5

在“开始”菜单中打开Qt命令行终端界面,参见下图:

【在Qt命令行终端中输入

windeployqt.exe -h

回车,可以查看命令帮助

在你认为合适的位置新建一个文件夹,将“release”文件夹下的.exe文件复制到新建的文件夹中,我这里在D:盘建立一个文件夹MyQtTest,将ch01.exe复制到该文件夹

命令行中输入

windeployqt 应用程序完整路径

我这里是

windeployqt  D:\MyQtTest

回车即可执行发布命令,参见下图:

 提示:如果应用程序路径中包含空格,需要用双引号将整个路径字符串包裹起来。

等待完成后,进入到应用程序目录可以看到,目录中增加了很多依赖库和数据文件。参见下图:

点击这个目录中你的.exe就可以直接运行了:

将这个文件夹发给一个没有安装过Qt 的电脑,看是否可以打开。若没问题就可以这样发布了。

更进一步可以制作安装文件。有很多制作安装文件的软件,如Inno Setup 是一个免费的 Windows 安装程序制作软件,还可以使用官方的Qt Installer Framework工具Qt Installer Framework框架制作安装包。Qt提供的Qt Installer Framework是一组工具和实用程序,用于创建一次安装程序。

官方下载:https://download.qt.io/official_releases/qt-installer-framework/

官方文档:https://doc.qt.io/qtinstallerframework/index.html

对于这些,在此就不多说了。

最后,再次提示,Qt 6及以后版本不再支持Windows 7。

附录

Qt 6.2.1 官方文档编制 (中文人工翻译) http://qt6.digitser.top/
Qt Creator使用教程的简单说明https://www.zhangshengrong.com/p/Ap1Zey3AX0/
Qt应用程序的发布(windeployqt)https://blog.51cto.com/u_15346415/5172452


http://www.ppmy.cn/news/81034.html

相关文章

使用Cpolar+freekan源代码 搭建属于自己的在线视频网站

文章目录 1.前言2.本地网页搭建2.1 环境使用2.2 支持组件和环境设置2.3 支持组件选和环境设置2.4 网页安装2.5 测试和使用2.6 问题解决 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 转发自CSDNprobezy的文章:使用Cpolarfreekan源码…

@Validated @RequestBody 配合使用

Validated 和 RequestBody 都是 Spring Boot 中用于在请求中验证数据的注解。但是,它们的作用和使用方式略有不同。 Validated 用于在方法参数、URL、请求体、Map中的数据上进行验证,确保数据的有效性。它会在验证失败时抛出异常,并且在验证…

ad18学习笔记二:绘图工具栏、活动栏

在画原理图库的时候会经常用到顶上的绘图工具栏(官方文档里叫做活动栏): 版本不同,上面的命令是不同的 ad如何自定义绘图工具栏? 网上介绍工具栏和设置的文章还挺多的,但是没有看到ad18是怎么增减绘图工具…

前端实用技巧--学习笔记

1、css逐帧动画steps() 案例:时钟的秒针动画 .box{// animation: rotate 60s linear infinite; // 指针会匀速转动animation: rotate 60s steps(60) infinite; // steps(60)会把动画平均分成60步,每次移动一步,实现一秒走一格 } keyframes …

gcc确认编译器默认头文件

文章目录 1. 背景2. gcc 空编译查看3. 总结 gcc确认编译器默认头文件 1. 背景 linux下查看编译时依赖的头文件,可以直接使用 -Iinclude_path进行指定,没有指定的会从默认头文件位置去查找,如果还找不到,就会报错。那么&#xff0c…

容器化:MySQL

1 缘起 开启容器化之路。 2 容器化MySQL 2.1 查看MySQL镜像 docker search mysql2.2 指定版本:5.7.30 通过官网查看:https://hub.docker.com/ docker pull mysql:5.7.302.3 路径挂载 容器路径挂载到宿主机。 新建宿主机路径 mkdir -p /home/xind…

python+vue智能小区物业水电费管理系统6becq

这次开发的智能小区管理系统有管理员,业主,物业员工三个角色。 管理员功能有个人中心,业主管理,物业员工管理,家庭成员管理,车位信息管理,业主报修管理,报修处理管理,业主…

推荐系统简介

文章目录 推荐系统的分类基于人口统计学的推荐算法基于内容的推荐算法基于协同过滤的推荐算法协同过滤(CF)推荐方法基于近邻基于用户的协同过滤基于物品的协同过滤 混合推荐推荐系统实验方法离线实验用户调查在线实验 学习下b站上尚硅谷的推荐系统的课程…