第五十三课、应用程序的打包与发布------------------狄泰软件学院

一、调试与发布

1、发布应用程序时的候选者

(1)、调试版(debug):开发阶段生成可执行程序

(2)、发布版(release):最终产品的可执行程序

2、调试版的可执行程序

(1)、包含调试相关的信息,体积巨大

(2)、执行速度慢,支持断点调试

3、发布版的可执行程序

(1)、无任何冗余信息,体积小巧

(2)、执行速度快,无法映射到源码调试

二、程序的库依赖

1、可执行程序的正常运行需要外部库的支持

因此:发布程序时必须保证所有依赖库都存在

第五十三课、应用程序的打包与发布------------------狄泰软件学院

2、Windows可以用Depends工具查看程序的依赖库

 第五十三课、应用程序的打包与发布------------------狄泰软件学院

3、Linux可以用ldd命令查看程序的依赖库

(1)、ldd是Linux系统中的一个脚本程序

第五十三课、应用程序的打包与发布------------------狄泰软件学院

三、程序的环境依赖

1、应用程序对于执行程序环境可能还存在依赖关系

 第五十三课、应用程序的打包与发布------------------狄泰软件学院

2、在客户机上部署程序的执行环境

(1)、方案一

A、用户根据提供的手册自行部署环境(不可取)

 (2)、方案二

A、开发一个专用的部署(安装)程序
B、部署(安装)程序运行后自动部署执行环境

3、部署(安装)程序的开发

第五十三课、应用程序的打包与发布------------------狄泰软件学院

4、InstallShield的简介

第五十三课、应用程序的打包与发布------------------狄泰软件学院

5、Inno Setup简介

第五十三课、应用程序的打包与发布------------------狄泰软件学院

6、NSIS简介

第五十三课、应用程序的打包与发布------------------狄泰软件学院

7、LinuxQt程序发布简介

(1)、方法一:

A、通过ldd命令确定程序的库依赖

B、通过shell脚本开发部署程序

(2)、方法二

根据具体发行版开发专用部署程序(dep、rpm)

五、小结

(1)、程序开发时能够生成debug和release版

(2)、打包时首先要解决程序的库依赖

(3)、程序执行需要特殊环境依赖时必须开发部署程序

(4)、Windows中有丰富的部署程序开发工具可供选择

(5)、Linux中可以采用Shell脚本开发部署程序