Windows环境Qt程序打包发布
发布方式
Qt发布的时候,通常使用两种方式:
1、静态编译
把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大。
2、动态编译
相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。静态发布虽然不需要较多的dll,发布简单、方便,但是往往会牵扯到授权问题(详情请查看Qt LGPL授权),动态发布则可以避免。。。如果附带了Qt的dll,就相当于发布了Qt的dll,而这些库是属于Qt的,这足以保证使用者知道程序使用了LGPL版本的Qt(这部分还有待探讨)。
查找依赖项
1、检测可执行程序依赖模块
程序运行所依赖的*.dll.包括Qt库目录下的platforms文件夹(eg: C:\Qt\Qt5.2.1\5.2.1\mingw48_32\plugins\platforms,少不得,少了就放肆说你缺这少那,又不直说是要这个platforms)
2、常用依赖库
(1)Qt模块库
Qt5Cored.dll
Qt5Guid.dll
Qt5Widgetsd.dll
(2)ICU依赖库
icudt51.dll
icuin51.dll
icuuc51.dll
(3)EGL依赖库
libEGLd.dll
libGLESv2d.dll
(4)插件库(Qt安装目录下即可找到D:\Software\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms)
图片支持库:imageformats
音频、视频支持库:mediaservice
平台支持库:platforms
等等。。。
注意:查找对应的插件文件夹,粘贴到安装目录(一定要保持目录结构,例如“platforms/***.dll”),详细结构见打包发布准备的文件组织结构。
(5)VS运行时库(在VS安装目录下即可找到D:\Software\Microsoft VisualStudio\VC\redist)
msvcp100d.dll
msvcr100d.dll
注意:发布程序的时候注意版本(Debug/Release)
如果是Debug版本的则是.前面带d的(Qt5Cored.dll、Qt5Guid.dll、Qt5Widgetsd.dll)
如果是Release版本的则是.前面不带d的(Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll)
NSIS打包发布Qt程序
1、NSIS简介
(1)NSIS是什么?
一款免费的Win32安装、卸载系统!
(2)NSIS有什么特点?
脚本简洁高效、系统开销小,进行安装、卸载、设置、解压文件也不在话下,几乎可以做所有的事情。
2、工具
NSIS Edit + NSIS
工具上传目录:https://202.197.67.33/svn/分享与成长/17 SWRelease/2 开发工具
3、发布流程
脚本向导 + 修改代码(高级了) = 个性化安装包
准备文件
以下是我即将打包的所有文件,安装包目录结构(包括:可执行程序、插件库、运行时库、授权文件、卸载程序图标等等!)如下图所示:
1、利用向导制作安装包
2、填写应用程序基本信息
3、指定安装程序所用选项
注意:这里选择语言为SimpChinese。(不装nsis_2.46.1414981289.exe是没语言让你选的。)
4、设置应用程序安装目录与授权文件
授权文件就是一个txt文件,不能为空,否则NIS编译不过,导致发布不成功。
5、指定应用程序文件
界面刚出来里面有默认的两个文件,要删除掉,然后添加需要发布的文件。
6、指定创建应用程序图标
7、选择安装程序完成后运行的动作
8、指定接触安装程序属性
9、进行脚本编译、保存
10、等待编译完成,即可运行打包后的安装包
大功告成之后,即可进行安装!
应用程序可执行文件图标
1、问题描述
直接编译的QT程序,没有漂亮的外观,如下图。如何给程序添加一个漂亮的图标呢?
2、程序添加图标步骤
1下载图标素材,以png格式素材为例说明。
图标素材(logo.png)
2将图标素材转换为ico格式。
3利用记事本新建一个名为logo.rc的文件,logo.ico为转换后的图标名称,内容如下:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
4在工程文件夹中新建一个images目录,将logo.ico、logo.rc放入文件夹中。
5打开QT工程,将logo.ico、logo.rc(images文件夹下面)添加进工程。
6在工程文件(*.pro)中加入一行:
RC_FILE=images/logo.rc
7重新组建工程,这时QT程序就有了一个漂亮的外观了,程序快捷方式效果如下图所示:
程序图标效果