目录

Windows下打包Qt项目

1.Qt系统环境变量的配置

 2.打包

3.打包整合为一个.exe文件

4.生成安装包


        做完了一个Qt项目之后,要干嘛呢,很显然要打包给别人,让别人也能使用这个软件,本期我们就来学习Qt打包,本期内容分为Windows下和Linux下的打包封装,打包好的文件发给别人只需要点击执行就行了,就跟你下载了一个软件双击即可执行,这是作为开发者必备的打包能力,下面一起来学习吧!

Windows下打包Qt项目

在Qtcreator下点击构建,下面我有这么一个简单的界面作为示例,这里我要对这个界面进行打包。

1.Qt系统环境变量的配置

这一点很重要,把Qt配置到系统的环境变量上才能进行打包处理。

点击系统变量PATH编辑。 

然后新建,把这个路径添加进来,然后保存就行了:

 2.打包

再然后就是点开你的Qt Creator选择Release,再去构建

构建好了之后,点开你的文件夹所在的位置,这里release就会看到有一个.exe文件

这时候双击这个.exe文件,这个UI界面就会出现,这时候你就会想这不就完成了吗?直接把这个文件夹压缩发过去,别人就可以用了呀。想屁吃呢?这里是需要依赖Qt环境才能运行的,你这里连Qt环境依赖的动态库和静态库都没有,发过去人家怎么可能打开呢? 

好了,这里正式开始讲这么去打包。

随便找个地方创建一个文件夹,然后把上面那个.exe文件复制粘贴进去。

下一步,在这个目录下打开终端,然后输入下面这个指令回车。

//windeployqt 文件名字.exe
 windeployqt Qdialog.exe  

说明:

windeployqt 是 Qt 提供的一个工具,用于自动收集并复制运行 Qt 应用程序所需的动态链接库(.dll 文件)及其他资源(如插件、QML 模块等)到可执行文件所在的目录。这样你就可以将应用程序和这些依赖项一起打包,确保在没有 Qt 环境的其他机器上也能运行。

主要功能:

  1. 自动收集依赖项windeployqt 会分析你的 Qt 应用程序,确定它所依赖的 Qt 库文件(如 Qt6Core.dll, Qt6Widgets.dll),并将这些文件复制到应用程序的目录。

  2. 处理插件和QML模块: 如果你的应用程序使用了 Qt 的插件(如平台插件 qwindows.dll 或图形驱动插件等),windeployqt 也会将这些插件一并打包。对于使用 QML 的应用程序,它也会自动收集必要的 QML 模块。

  3. 处理资源文件: 如果你的应用程序包含了 Qt 的资源文件(如图标、翻译文件等),它也会确保这些资源正确包含在最终的应用程序中。

这个时候你再打开这个目录发现就会多了好多文件,现在这个项目所需的依赖环境基本上放到这个文件夹了,你现在实际上可以去压缩发给别人了,别人即使没有Qt环境,也只需要双击那个.exe文件就可以直接使用了。不过这样子我感觉还不够完美,如果你做的是一个大型的Qt项目的话这样子就可以了,但是Qt基本上都是些小型的上位机比较多,所以啊我们还可以再继续完善一下,把整个文件夹变成一个可执行的.exe文件不是更加好嘛。请接着往下看。

3.打包整合为一个.exe文件

 这里需要用到这个Enigma Virtual Box软件,下载可以参考下面这个博客。

Enigma Virtual Box用法 exe封包工具介绍-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/ffffffeiyu/article/details/137087625?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522078B2AA5-F136-4D93-BEDB-299AE2D57C2E%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=078B2AA5-F136-4D93-BEDB-299AE2D57C2E&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-137087625-null-null.142%5Ev100%5Epc_search_result_base8&utm_term=Enigma%20Virtual%20Box&spm=1018.2226.3001.4187下载好了之后打开,这里把那个.exe文件放进去

然后点击这里:

 然后选择你这个.exe文件所在的目录。

 点击确定。

 搞定了,现在点击执行封包就行了。

 出现下面就是已经OK了。

 然后打开这个目录,这里就会有一个大小比较大boxed.exe文件,这个文件就是把所有需要的依赖全部整合生成的可执行文件,,相较于前面你只需要把这个文件发给别人,别人就可以直接执行了,方便多了。

4.生成安装包

到这里,你或许还感觉差了点意思,当然你会想还可以进一步去封装吗?严格的来说,我们已经做了一个软件了,那必须得给它整个安装包呀!说干就干。

下载Inno Setup 6(可以参考Qt程序的发布和打包 | 爱编程的大丙

官方下载地址:http://www.jrsoftware.org/isdl.php#stable

第一步,创建一个带向导的脚本文件。

直接 Next,不要创建空的脚本文件 

这里选择(Custom)即用户可自定义安装目录,这里我选D:/

 这里选择.exe文件,然后下面点Add folder 这里选择这个.exe文件所在的目录,道理跟上面整合是一样的,也就是获取到这个项目的环境依赖项。

 这里不需要勾选,然后点击下一步。

许可文件,文件中的内容会显示到安装向导的相关窗口中,可以选择不指定,直接跳过。我这里就直接跳过了。

这里选择安装语言,别看了,没有中文,老实选English下一步。 

 那个我这里是没有图标的,你们有图标加上去也不错。还有就是那个密码,也就是别人先要使用你这个安装包去安装你的软件的时候需要输入的密码(我感觉没什么必要,又不是私密软件)

然后一直点击下一步就行了。

直到这里,找到你上面选择的那个安装包文件夹去放你这个.iss文件,然后保存。

 现在打开,就是这样子的了,大功告成。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐