找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

QT软件开发-第十六章 QT应用程序发布

admin 2019-11-19 18:39 455人围观 Qt相关



点击上方蓝字关注我们




16.1 发布方式


  Qt发布的时候,通常使用两种方式:

   (1)静态编译

   (2)动态编译

静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大(会涉及到版权问题)。

动态编译:相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。

16.2动态打包发布

16.2.1准备工作


 Qt 官方开发环境里自带了一个工具:windeployqt.exe。

windeployqt 工具可以自动复制插件文件夹和 dll文件、qm文件。可以得到完整的 exe 程序发布集合,解决所有的依赖关系。不用手动去一个一个复制。

准备工作:

1. 需要一个完整正常编译的QT工程。

2. 编译的时候选择Release方式部署。



图16-2-1



图 16-2-2 EXE文件的生成位置

16.2.2 windeployqt.exe工具位置


windeployqt.exe工具在QT的安装目录下。

比如:

MINGW编译器:

C:\app_setup\for_QtQt5.5.1\5.5\mingw492_32\bin\windeployqt.exe

VS编译器:

D:\Qt\Qt5.5.0\5.5\msvc2010\bin\windeployqt.exe

蓝色的是电脑上的QT安装路径。

当前QT采用哪一个编译器,就选择对应的windeployqt.exe程序。

16.2.3添加环境变量


windeployqt.exe工具需要在dos命令行中使用,所以需要将windeployqt.exe路径添加到系统环境变量中。

  • Win7 添加环境变量示例:

选择桌面的”计算机”快捷键图标, 然后鼠标右键选择属性。



图16-2-3 环境变量的添加

注意环境变量地址间都是分号间隔。

  •  Win8 示例:



图16-2-4

Win10示例:



图16-2-5

16.2.4环境变量生效方式


方式1 :重启电脑

方式2 :设置临时环境变量

在dos命令行输入:set path=xxxxx 回车执行即可。xxxx表示需要设置的环境变量路径。



图16-2-6 设置示例

16.2.5自动寻找依赖


将QT编译生成的xxx.exe可执行文件拷贝到一个单独的文件夹。



图16-2-7 源文件位置



图16-2-8 存放文件的位置

1. 在dos命令行进入到存放xxx.exe的目录。

C:\Users\Administrator>cd /d E:\linux-share-dir\QT

E:\linux-share-dir\QT>



图16-2-9 进入DOS命令终端

2. 运行打包工具

E:\linux-share-dir\QT>windeployqt.exe ImageTransfer.exe



图16-2-10 自动查找依赖库

运行完毕之后,xxx.exe目录下便会出现很多的依赖文件。可将该文件夹拷贝给别人,鼠标双击xxx.exe即可运行。



图16-2-11 自动获取的依赖文件

一般通过ImageTransfer.exe工具打包的库里会少几个库,如果将打包的整个目录拷贝到没有安装QT环境的电脑上,将无法运行。少的这几个库分别是:libgcc_s_dw2-1.dll、libstdc++-6.dll、libwinpthread-1.dll 这3个库在QT编译器的bin目录下,手动拷贝一下即可。



图16-2-12 库所在位置

16.3查看exe的依赖

16.3.1查看依赖


我们可以使用Depends.exe工具进行查看exe运行依赖的所有文件,检查下windeployqt.exe复制的依赖库是否完整。

Depends.exe工具可以直接百度下载。

操作界面:



图 16-3-1

黄色的表示没有找到,需要将当前目录下没找到的依赖库全部复制到exe的目录下。重复进行检查,直到所有的依赖都复制完毕。

鼠标选中黄色的提示xxx.DLL,鼠标右键选择属性即可查看文件的存放位置,然后将它复制过来。



图 16-3-2

16.3.2 QT5常规依赖库


(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”)。  

  • 发布程序的时候注意版本(Debug/Release)

如果是Debug版本的则是.前面带d的(Qt5Cored.dll、Qt5Guid.dll、Qt5Widgetsd.dll)

如果是Release版本的则是.前面不带d的(Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll)

16.4安装包程序制作


安装包制作工具有非常多可以选择,可以使用HAP_Setup2GO1911.exe、小兵安装包制作工具、HMNISEditPortable.exe、AdvancedInstaller、易量安装、等等工具进行打包,百度可以下载到。

16.4.1  “易量安装”制作工具使用示例


下载地址:

http://xiazai.sogou.com/detail/34/16/8255485430664336900.html?e=1970



图16-4-1



图16-4-2 新建脚本向导


 图16-4-3


 图16-4-4 根据提示填充信息



 图16-4-5 根据提示填充信息



图16-4-6 设置安装目录名称



图16-4-7 选择源文件的路径



图16-4-8 继续下一步



图16-4-9 继续下一步



图16-4-10 指定可执行程序文件



图16-4-11 设置图标



图16-4-12



图16-4-13



图16-4-14 编译脚本



图16-4-15 编译完成



图16-4-16 设置编码



图16-4-17 再次编译

脚本编译成功之后,在指定的目录下就会生成安装包。



图16-4-18 生成的安装包


技术合作与咨询

QQ:1126626497
关注我长按二维码可识别微信号:xl1126626497



----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:DS小龙哥 嵌入式技术资讯,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

2人点赞鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (2 人)

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......