第53课 - 应用程序的打包与发布
1、调试与发布
发布应用程序时的候选者
-调试版(debug) : 开发阶段生成的可执行程序
-发布版(release) : 最终产品的可执行程序
调式版的可执行程序
-包含与调式相关的各种信息,体积巨大
-执行速度慢,支持断点调试
发布版的可执行程序
-无任何冗余信息,体积小巧
-执行速度快,无法映射到源码调试
2、程序的库依赖
可执行程序的正常运行需要外部库的支持
因此:
-发布程序时必须保证所有的依赖库都存在
Windows中可以使用Depends工具查看程序的库依赖
Depends官网地址:
-http://www.dependencywalker.com
Linux中可以使用ldd命令查看程序的库依赖
-ldd是Linux系统中一个脚本程序(Shell)
-文件路径: /usr/bin/ldd
3、实验分析
库依赖的确定 NotePad.pro
Windows下
将发布版exe程序拖到Depends中
选择DLL文件,右键查看属性
若路径在C:\windows\system32不用理会
若路径在E:\qt\4.7.4\bin需要到对应目录下将对应库文件拷贝出来
Linux下同理
4、程序的环境依赖
应用程序对于执行环境还可能存在依赖关系
可能的依赖:
-环境变量,驱动程序,数据库引擎
-Java虚拟机,.net Framework
-.....
问题 :
如何在客户机器上部署程序的执行环境?
方案一:
-用户根据提供的使用手册自行部署执行环境 (✘)
方案二:
-开发一个专用的部署(安装)程序
-部署(安装)程序运行后自动部署执行环境 (✓)
4、部署(安装)程序的开发
通用的软件开发方式
• Visual Studio
• Qt SDK + Qt Creator
专用的部署开发方式
• InstallShield
• Inno Setup
• NSIS
一般的方式
一般直接用Qt提供的windeployqt工具
Installshield简介
-商业级应用软件,功能强大,应有尽有
-用于解决Windows软件安装包开发的制作工具
-官网地址: http://www.installshield.com
Inna Setup简介
-免费应用软件,小巧,简便,精美
-以Pascal语言作为脚本开发Windows部署程序
-官网地址: http://www.jrsoftware.org/isinfo.php
NSIS简介
-开源应用软件,超轻量级,无任何冗余功能
-以专用脚本语言开发Windows安装程序
-官网地址: http://nsis.sourceforge.net
5、Linux下Qt程序发布简介
-方法一:
1. 通过ldd命令确定程序的库依赖
2. 通过Shell脚本开发部署程序
-方法二:
根据具体发行版开发专用部署程序(deb, rpm)
6、小结
程序开发时能够生产debug和release版
打包时首选要解决程序的库依赖
程序执行需要特殊环境依赖时必须开发部著程序
Windows中有丰富的部著程序开发工具可供选择
Linux中可以采用Shell脚本开发部署程序