软件编写调试好之后最重要的就是打包和发布,这样软件才好传播。

qt软件的打包发布一个难点是必备dll文件的识别。不少日志说用dependencyWalker,今天我试了一下发现查找dll不完全,比如辨识不了qwindows.dll(会报错could not find or load the qt platform plugin windows)。并且还要自己手动添加不是很方便。一番查找后发现qt内置一个现成的dll依赖性工具windeployqt十分好用,该工具在qt的bin/目录下。

参考官方文档:http://doc.qt.io/qt-5/windows-deployment.html#application-dependencies

第一步是添加qt的bin/目录进系统path变量。很简单,在系统属性里设置,添加D:\Qt\5.4\msvc2010_opengl\bin;到系统path环境变量。(qt安装目录不尽相同)

第二部,在任意目录新建文件夹,把编译完成后的qt exe可执行程序拷贝过去。从命令行模式进入该文件夹,执行语句windeployqt xxxx.exe. 之后该工具会分析程序依赖性,自动添加必要dll文件至该目录。运行时命令行提示如下

D:\TVS\Qt\LGTVSerialControl>windeployqt terminal.exe --release
D:\TVS\Qt\LGTVSerialControl\terminal.exe 32 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Direct dependencies: Qt5Core Qt5Gui Qt5SerialPort Qt5Widgets
All dependencies   : Qt5Core Qt5Gui Qt5SerialPort Qt5Widgets
To be deployed     : Qt5Core Qt5Gui Qt5SerialPort Qt5Svg Qt5Widgets
Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not s
et.
Updating icuin53.dll.
Updating icuuc53.dll.
Updating icudt53.dll.
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5SerialPort.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Creating directory iconengines.
Updating qsvgicon.dll.
Creating directory imageformats.
Updating qdds.dll.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjp2.dll.
Updating qjpeg.dll.
Updating qmng.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory platforms.
Updating qwindows.dll.
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_de.qm...
Creating qt_fi.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...D:\TVS\Qt\LGTVSerialControl>

这样必要的库文件就自动添加完毕。

后面就是打包形成安装包了。QT官方推荐了3种软件(https://qt-project.org/wiki/BuildingQtInstallers+&cd=1&hl=en&ct=clnk&gl=us),这里举例第二种软件NSIS说明使用方法。

下载安装NSIS。安装后启动界面如下:

最简单的方法是使用第二个选项Installer based on zip file(由zip文件构建安装包)

把刚才使用了windeployqt的整个目录打包成zip文件,用NSIS加载该zip文件,设置好默认安装目录,点generate就可以打包成安装包了。

win7平台下QT软件的打包与发布(部署与安装)相关推荐

  1. win7平台下QT软件的打包与发布(部署与安装) 打包成安装包样式

    软件编写调试好之后最重要的就是打包和发布,这样软件才好传播. qt软件的打包发布一个难点是必备dll文件的识别.不少日志说用dependencyWalker,今天我试了一下发现查找dll不完全,比如辨 ...

  2. Qt学习笔记之Qt软件的打包发布

    在QT编程结束之后,我们会运行程序,这个过程结束后会在你工程的父目录中出现一个build-simpleEditor-unknown-Debug的文件夹,其中build之后的名称就是你工程的名称.在这个 ...

  3. Blast本地化:window平台下blast软件的安装

    1.对于windows 2000/xp 用户,下载blast-2.2.18-ia32-win32.exe安装文件 ftp://ftp.ncbi.nlm.nih.gov/blast/executable ...

  4. windows 平台下 qt 用qfile 访问带中文的路径或者带中文的名字的文件的解决方法

    查过网上各种资料,全部都不行,例如setCode什么之类的,我也不知道为什么,可能还是需要多加研究,对于这类文件解决方法如下: if (QFile::exists(QString::fromLocal ...

  5. vue打包自动化发布部署

    一.安装 scp2,用ssh链接到服务器上 npm install scp2 --save-dev 是否有控制台inquirer.js,没得在装一个 npm install inquirer 二.新建 ...

  6. Window平台Qt软件打包发布方法

    Qt开发生成的工程,通过动态编译之后生成对应的可执行文件,如果直接执行该可执行文件则会报错: 原因是:Qt动态编译生成的可执行文件依赖非常多的dll文件,并且这些dll文件可能分布在不同文件目录,且这 ...

  7. windows平台下vlc编译

    转自:http://jeremiah.blog.51cto.com/539865/114190     Jeremiah刚刚工作几个月,参与的第一个项目是与视频监控有关,分配给我的任务就是用开源的vl ...

  8. windows 本地搭建git仓库_Windows平台下Github远程仓库的搭建-Go语言中文社区

    前言 Github是一个面向开源及私有软件项目的托管平台,拥有超过900万开发者用户,有众多的开源项目供研究者学习.还提供了很多项目管理功能,方便多终端同步管理项目.本文将介绍Windows平台下Gi ...

  9. windows平台下的mysql启动等基本操作

    一.windows下启动和停止mysql ======================= mysql安装好之后,需要启动mysql服务,否则无法访问到. 当我们在windows平台下,且使用二进制分发 ...

最新文章

  1. iOS开发之用到的几种锁整理
  2. 应用内评分_游戏评分低,怎么办?
  3. 解析Python中的条件语句和循环语句
  4. 蓝桥杯第六届国赛JAVA真题----密文搜索
  5. 二维数组和指针(包含交换二维数组行列)
  6. 你真的搞懂ES6模块的导入导出规则了吗
  7. Win10 通过注册表修改默认应用
  8. php开发中控考勤机,中控考勤机
  9. zzzfun网站连接不上服务器,zzzfun网页版
  10. [科技] 假装是ETT的ETT
  11. 古典概型几何概型伯努利概型条件概率
  12. linux提取基因名称和序列,一种批量提取基因组基因信息并翻译比对分析序列的方法与流程...
  13. Android微信支付遇到的大坑
  14. 在线API文档、技术文档工具ShowDoc
  15. set_input_delay/set_output_delay
  16. 什么是同比、环比与定基比
  17. 二层华三交换机连接三层思科交换机,trunk,vlan划分
  18. Received HTTP code 404 from proxy after CONNECT
  19. Unity 在Mac上打包,执行python报Win32Exception的解决方案
  20. 教你如何打韩文---韩语键盘及打字技巧

热门文章

  1. 谷歌验证码,国内各种验证码识别
  2. 《趣谈网络协议》学习笔记 DAY06
  3. 【MD】高等数学常用符号
  4. android gps定位完整代码,android GPS定位 (完整代码实例)
  5. 个人官网导航主页API网站源码
  6. Android小游戏开发:简单的合金弹头游戏(一)游戏框架
  7. 搅局者周鸿祎圆梦:忆往昔凶猛斗狠轮战群雄
  8. Python五大主要用途+零基础基础入门全攻略
  9. 51、Recursive-NeRF: An Efficient and Dynamically Growing NeRF
  10. 文件预览格式太多 前端需要很多插件,有了这一个就够了,kkFileView支持doc,docx,Excel,pdf,txt,zip,rar,图片等等