qt -- 应用程序发布、打包

目录

静态链接(Static linking)

共享库(Shared Libraries)

Windows平台上的应用程序发布

1、Windows发布工具 

2、MinGW编译的应用程序发布

3、MSVC编译的应用程序发布

4、安装


Qt的应用程序发布有两种方式:静态链接和共享库方式。

静态链接(Static linking)

指用Qt编译应用程序时,将Qt的运行库等所需的支持文件全部静态编译到应用程序里,生成一个独立的可执行文件,应用程序发布只需很少的几个文件。这种方式的缺点是应用程序可执行文件很大,缺少灵活性。例如,当应用程序需要更新,或Qt有更新时,需要重新编译应用程序后再发布。而且,静态链接方式不能部署插件。

共享库(Shared Libraries)

指按正常方式编译生成应用程序,将应用程序运行所需的各种共享库与应用程序一同发布给用户。这样,当Qt的运行库更新时可以单独更新Qt运行库,应用程序如果使用了插件(插件是以共享库形式存在的),也可以单独更新插件,这为应用程序更新提供了方便。

Windows平台上的应用程序发布

1、Windows发布工具 

windeployqt.exe是 Qt自带的Windows平台发布工具,它可以自动为一个应用程序复制其运行所需的各种库文件、插件和翻译文件,生成可发布的目录。
windeployqt.exe文件在Qt的 bin目录下,Qt的每一个编译器版本均有独立的目录,如计算机上的Qt安装有minGW32、MSVC2015 32bit和 MSVC2015 62bit 3个编译器版本,Qt安装在
E:\QT\5.9.8\mingw53_32\bin    E:\QT\5.9.8\msvc2015\bin   E:\QT\5.9.8\msvc2015_64\bin

在Windows的cmd窗口使用windeployqt程序,语法如下:

windeployqt [options] [files]

options是一些选项设置,可以查看Qt帮助文件查看具体设置,一般使用缺省设置即可

files是需要生成发布文件的应用程序文件名。

在cmd窗口下使用 windeployqt,最好的方法是将windeployqt版本所在的bin路径添加在系统环境变量PATH中。

在 Windows平台上,windeployqt会将编译器的运行时文件复制到发布目录下,如果是用MSVC编译的,就包含Visual C++的运行库。

2、MinGW编译的应用程序发布

用MinGW编译器在release模式下编译,生成可执行文件.exe。将执行文件复制到一个目录下,例如“F:\setUp\minGW”

将MinGW版本的Qt的 bin路径添加到系统的PATH环境变量里,然后在Windows的“开始”菜单的文本框里键入“cmd”,回车后进入Command窗口,在Command窗口里依次键入并执行以下指令:

cd F:\setUp\minGW
windeployqt demo.exe    //可执行的文件名

执行完后,windeployqt 将 demo.exe运行时需要的各种库文件都复制到 F:\setUp\minGW 目录下。

测试生成的发布目录下的文件是否齐全。将系统环境变量的bin路径去除。然后执行可执行文件.exe。如果提示丢失:“XXXXX.dll”,如果在E:\QT\5.9.8\mingw53_32\bin 有这个库文件,可复制文件到F:\setUp\minGW目录下。再次执行.exe文件,确保可执行的文件依赖的库完整。

注意:

运行应用程序,测试部署文件完整性时,必须删除系统环境变量里Qt的bin路径,否则系统从Qt的bin路径里是可以找到依赖的库文件,就达不到测试的目的。

查看可执行文件的依赖文件,可以使用工具:Dependency Walker,能够可视化的查看依赖的文件 

3、MSVC编译的应用程序发布

步骤和2、基本一样。

4、安装

Qt5可以使用官方的Qt Installer Framework

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

创建安装包程序

官方文档:http://doc.qt.io/qtinstallerframework/ifw-tutorial.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值