本文接着上一篇“Qt 6之二:项目的结构、资源文件的使用” https://blog.csdn.net/cnds123/article/details/130741807介绍,并使用其中的例子。
程序代码能正确编译运行,就可以考虑项目的发布了。
发布 Qt 程序需要考虑多种因素。您需要了解目标平台的要求,了解如何编译和打包程序,并能够管理其依赖项和发布版本。
Qt Creator将项目源文件和编译生成的文件进行了分类存放。初学者常常找不到生成的可执行文件.exe在哪儿。
在Qt Creator中,生成的可执行文件(.exe文件)默认会放在项目的构建目录中。构建目录的位置可以在Qt Creator的项目设置中进行配置。
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 的电脑,也可以打开。不过这样发布包含的无用的文件较多,也不太专业。这样发布整个文件夹约200多M(虽然其中的ch01.exe很小)。
下面介绍使用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 的电脑,看是否可以打开。若没问题就可以这样发布了。这样发布整个文件夹约50多M(虽然其中的ch01.exe很小)。
更进一步可以制作安装文件。有很多制作安装文件的软件,如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