Qt 打包依赖 及发布安装程序

1、打包依赖

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,
如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。
因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。
以官方 Qt 5.4.0+MinGW 开发环境为例,
从开始菜单--》Qt 5.4.0--》5.4--》MinGW 4.9 (32-bit)--》Qt 5.4 for Desktop (MinGW 4.9 32 bit),可以打开 Qt 命令行,从这里就可以执行 windeployqt 工具。

集成开发环境 QtCreator 目前生成图形界面程序 exe 大致可以分为两类:
Qt Widgets Application 和 Qt Quick Application。
下面分别介绍这两类exe 的发布方式。

1、Qt Widgets Application可执行程序发布方式
首先用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 hellomw。
然后以 Release 方式编译生成 exe 程序:

生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:
C:\QtPros\hellomw\
它的项目生成目录是
C:\QtPros\build-hellomw-Desktop_Qt_5_4_0_MinGW_32bit-Release\
进入这个文件夹,在进入它的子文件夹 release 里面,找到 hellomw.exe ,
将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 
D:\hellomw\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,输入命令 :
cd /d D:\hellomw
然后使用 windeployqt 工具命令:
windeployqt hellomw.exe

然后可以在 D:\hellomw 文件夹里看到 windeployqt 工具自动复制的插件文件夹
和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。

把 D:\hellomw 文件夹 打包就可以发布了,不用自己一个个找 dll 文件了。
D:\hellomw 文件夹里的qm文件是多国语言翻译文件,不需要可以删了,
其他的都保留。

2、Qt Quick Application发布方式
首先用 QtCreator 新建一个 Qt Quick Application 项目,直接用默认的项目模版,点击下一步生成项目,项目名字假定是 helloqml。
然后以 Release 方式编译生成 exe 程序:

然后找到项目的构建目录,比如项目源码目录 C:\QtPros\helloqml,
它的构建目录是:
C:\QtPros\build-helloqml-Desktop_Qt_5_4_0_MinGW_32bit-Release\
进入这个目录,再进入 release 子文件夹,找到 helloqml.exe ,
复制到一个新的单独的文件夹里面,比如 D:\helloqml\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,进入D:\helloqml\文件夹:
cd /d D:\helloqml
然后使用 windeployqt 

windeployqt
在下载的Qt压缩包里自带

windeployqt 工具命令:
windeployqt helloqml.exe --qmldir C:\Qt\Qt5.4.0\5.4\mingw491_32\qml

注意不要跟烧包一样照抄上条命令,--qmldir 是指出 Qt 库里面的 qml 文件夹位置,
上面命令里 C:\Qt\Qt5.4.0 是 Qt 官方开发环境安装的文件夹,
C:\Qt\Qt5.4.0\5.4\mingw491_32 是Qt类库的目录(QTDIR),
因此使用的 --qmldir 后面写的是 C:\Qt\Qt5.4.0\5.4\mingw491_32\qml 
读者Qt环境安装路径不一样,要根据实际情况修改!

然后可以看到 D:\helloqml 文件夹里有一大堆文件,就是 QtQuick程序需要的依赖文件。
将整个 D:\helloqml 文件夹 打包就可以发布出去,在别的电脑上使用。

这个 D:\helloqml 文件夹里的东西很多,看不懂就不要删,老老实实打包发布就行了。

上面是最简单的程序发布,实际复杂程序可能还带一些图片文件、数据库文件、配置文件之类的,可以按自己需要复制这些文件到发布文件夹里面。

2、发布安装程序

1、NSIS简介

(1)NSIS是什么?

    一款免费的Win32安装、卸载系统!

(2)NSIS有什么特点?

    脚本简洁高效、系统开销小,进行安装、卸载、设置、解压文件也不在话下,几乎可以做所有的事情。

2、工具


    NSIS Edit + NSIS

  
只需下载 HM NIS Edit

3、使用方式

    脚本向导 + 修改代码 = 个性化安装包

准备文件

    以下是我即将打包的所有文件,安装包目录结构(包括:可执行程序、插件库、运行时库、授权文件、卸载程序图标等等!)如下图所示:

1、利用向导制作安装包:

2、填写应用程序基本信息

3、指定安装程序所用选项

    注意:这里选择语言为SimpChinese

4、设置应用程序安装目录与授权文件(授权文件必须提前写好)

5、指定应用程序文件(直接选择windeployqt打包好的文件夹,minSection选择exe文件)

6、指定创建应用程序图标

7、选择安装程序完成后运行的动作(自述文件必须存在)

8、指定接触安装程序属性

9、进行脚本编译、保存

10、等待编译完成,即可运行打包后的安装包

    大功告成之后,即可进行安装!

(1)安装程序

(2)此处显示授权文件中的内容

(3)选择安装目录

(4)运行程序,并显示“自述文件”

(5)运行结果

    关于Qt的打包工具了解一些,个人感觉NSIS用起来比较顺手,脚本修改起来也方便,所以就推崇一下。。。若想将安装包变得更加美观,则需要手动修改脚本,更多信息请查找相关资料,此处不再多做介绍!

注意如果有图片等资源,windeployqt是不会把他们打包的,需要手动复制到打包好的目录下。

时间: 2024-10-26 05:48:03

Qt 打包依赖 及发布安装程序的相关文章

Qt5 编译 & 打包依赖dll发布

十年前学C++的时候,无聊到把windows 文件夹下几乎所有的*.dll 都看过一遍.偶尔在程序运行时看到缺少 *.dll 的提示,都会直接找出来解决.   随着"开发平台"和"编译器"版本的逐年升级,一个程序的依赖链接库体积也越来越大,这给码农.程序猿.软件攻城狮们测试和发布都造成了比较大的麻烦! 六年前做过某专业软件汉化包的安装程序打包,感觉专业的安装程序制作工具对一些小程序来说太浪费了,而且用户会觉得不够"绿色".如果能够简单的完成打包,

一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(五) --补遗 (已补充第三部分完整版)

原文:一个完整的Installshield安装程序实例-艾泽拉斯之海洋女神出品(五) --补遗 (已补充第三部分完整版) 上一篇:一个完整的安装程序实例-艾泽拉斯之海洋女神出品(四) --高级设置二 转载时请务必保留转载出处和由艾泽拉斯之海洋女神出品的字样:如需刊登,请与作者联系.little_fairycat@126.com. 第三部分:其他 1. 修改显示界面的风格 Installshield 原始安装界面我始终觉得很丑,幸好Installscript 是可以不用写代码就可以改界面风格的.

如何使用InstallShield8.0制作自己的安装程序

摘要 本篇文档会告诉你如何使用InstallShield开发平台来创建,编译,运行一个安装程序.在这篇文档中你会学习到安装过程中碰到的下面一些内容:加载安装文件,设置快捷方式,修改注册表,条件安装一些文件,注册com组件,更换安装界面,调试以及发布安装程序. 本篇文档主要分下面的6个部分内容: 创建,编译,测试安装的工程 设置快捷方式以及修改注册表 注册COM组件 Conditions and Properties 使用脚本修改安装程序 修改安装界面 下面我们来一步一步地跟我来学习如何制作安装程

qt c++-QT打包发布,找依赖文件DLL

问题描述 QT打包发布,找依赖文件DLL 5C GPSVC.DLL IESHIMS.DLL.QT打包找依赖文件时这两个文件老是不可以.求大神解答.我已经拷贝了这两个文件.怎么还是不可以?我是按照http://blog.csdn.net/gzshun/article/details/7495488这里面的教程.![图片说明](http://img.ask.csdn.net/upload/201604/14/1460603135_724936.png)![图片说明](http://img.ask.c

Wix打包系列(一)如何使用wix制作安装程序

原文:Wix打包系列(一)如何使用wix制作安装程序     最近由于项目需要,需要给客户制作安装程序,一开始使用vs2005自带的打包工程来打包,但用了一段时间发现vs打包太死板,而且使用起来问题很多.收费的商业打包工具不在我考虑范围内,于是在网上找到了wix,稍微了解了下,发现wix的确可以满足我的需求:但是网上wix中文的资料少的可怜,百度,google上搜索到关于wix中文的资料少的可怜,有的只是一些简单的应用,还不足以满足我的要求:没办法,只能靠自己了,还好项目不是很急,于是开始花时间

vb.net打包成安装程序

问题描述 我的程序已经写好了,并且调试可以正常运行,使用正常.现在该如何打包,以方便在任何电脑上安装使用呢 解决方案 解决方案二:在新建项目中创建安装项目.解决方案三:debug里有个.EXE文件,可以直接拿来用解决方案四:我说是是要打包成安装程序呢,要在其他电脑上安装使用,我通过新建项目打包出来再别的电脑上安装的时候是安装了.netframework的,但是运行的时候老实说缺少运行环境解决方案五:用ClickOnce发布菜单生成→发布<项目名>解决方案六:依赖项选择本地,一般取默认项即可,有

asp.net mvc 是否可以打包成安装程序

问题描述 平时在服务器上部署需要安装数据库.IIS..netframework.mvc版本,是否可以有办法打包成一个安装包,其中自带解析器,数据库可以做成本地的?用户点击图标即可执行通过浏览器打开? 解决方案 解决方案二:不带服务器?我看你数据库也别要了,做几个静态网页来实现吧解决方案三:.....感觉不太可行解决方案四:sqlserver好说,安装程序可以用命令行参数,.Net也可以用系统必备装上,IIS微软根本就没提供用于再发布的安装程序.你可以在安装程序里检测IIS是否安装.解决方案五:首

Wix打包系列(七) 添加系统必备组件的安装程序

原文:Wix打包系列(七) 添加系统必备组件的安装程序     我们知道在vs的打包工程中添加系统必备组件是一件很容易的事情,那么在wix中如何检测系统必备组件并在安装过程中安装这些组件.这里以.Net Framework组件作为必备组件为例:         7.1 检测.Net Framework 版本         步骤1:为安装项目添加WiX .NET extensions库的引用     如果是命令行方式使用wix,那么需要在candle和light的时候添加如下参数: -ext W

BitNami Drupal Stack 7.14-0发布 Drupal安装程序

BitNami http://www.aliyun.com/zixun/aggregation/33847.html">Drupal Stack 是一个易于安装的Drupal CMS软件分布.它包括预配置,可直接运行的Apache.MySQL和PHP版本,用户可以得到Drupal安装程序后,在几分钟内运行.当前版本支持Linux和Windows平台. BitNami Drupal Stack 大大简化了Drupal部署和其所需的依赖,它可以使用本地安装程序进行部署,作为一个虚拟机和AMI到