来源:http://blog.sina.com.cn/s/blog_a6fb6cc90101fer8.html
发布方式
Qt发布的时候,通常使用两种方式:
(1)静态编译
(2)动态编译
检测完成之后,将所需依赖库拷贝进去。。。再次进行检测,反复进行。
静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大。。。
动态编译:相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。。。
静态发布虽然不需要较多的dll,发布简单、方便,但是往往会牵扯到授权问题(详情请查看Qt LGPL授权),动态发布则可以避免。。。如果附带了Qt的dll,就相当于发布了Qt的dll,而这些库是属于Qt的,这足以保证使用者知道程序使用了LGPL版本的Qt(这部分还有待探讨)。
查找依赖项
1、检测可执行程序依赖模块
下载工具:Dependency Walker
打开可执行程序,检测依赖项
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxLnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbDZhWFdhNGEwJjY5MA%3D%3D.jpg?w=700&webp=1)
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 Visual Studio\VC\redist)
msvcp100d.dll
msvcr100d.dll
注意:发布程序的时候注意版本(Debug/Release)
如果是Debug版本的则是.前面带d的(Qt5Cored.dll、Qt5Guid.dll、Qt5Widgetsd.dll)
如果是Release版本的则是.前面不带d的(Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll)
以上是我所用到的依赖库,基本可以解决问题,包括:
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxMi5zaW5haW1nLmNuL213NjkwL2E2ZmI2Y2M5Z3g2Q2w3V0dzajFiYiY2OTA%3D.jpg?w=700&webp=1)
关于NSIS
1、NSIS简介
(1)NSIS是什么?
一款免费的Win32安装、卸载系统!
(2)NSIS有什么特点?
脚本简洁高效、系统开销小,进行安装、卸载、设置、解压文件也不在话下,几乎可以做所有的事情。
2、工具
NSIS Edit + NSIS
3、使用方式
脚本向导 + 修改代码 = 个性化安装包
准备文件
以下是我即将打包的所有文件,安装包目录结构(包括:可执行程序、插件库、运行时库、授权文件、卸载程序图标等等!)如下图所示:
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxMC5zaW5haW1nLmNuL213NjkwLzAwMzNBTVQ3Z3k2RFh5d2owU0phOSY2OTA%3D.jpg?w=700&webp=1)
1、利用向导制作安装包:
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxMS5zaW5haW1nLmNuL213NjkwL2E2ZmI2Y2M5Z3g2Q2w4WHlweUdhYSY2OTA%3D.jpg?w=700&webp=1)
2、填写应用程序基本信息
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3M4LnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbDk3OUE3ZDk3JjY5MA%3D%3D.jpg?w=700&webp=1)
3、指定安装程序所用选项
注意:这里选择语言为SimpChinese
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MzLnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbDliUG5EYzEyJjY5MA%3D%3D.jpg?w=700&webp=1)
4、设置应用程序安装目录与授权文件
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxMi5zaW5haW1nLmNuL213NjkwL2E2ZmI2Y2M5Z3g2Q2w5a0NMdHAwYiY2OTA%3D.jpg?w=700&webp=1)
5、指定应用程序文件
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxMy5zaW5haW1nLmNuL213NjkwL2E2ZmI2Y2M5Z3g2Q2w5d3ZKZFczYyY2OTA%3D.jpg?w=700&webp=1)
6、指定创建应用程序图标
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3M2LnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbDlBVVZ3eDY1JjY5MA%3D%3D.jpg?w=700&webp=1)
7、选择安装程序完成后运行的动作
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MzLnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbDlKTFh5eWMyJjY5MA%3D%3D.jpg?w=700&webp=1)
8、指定接触安装程序属性
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3M0LnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbDlQMnZ6ZDQzJjY5MA%3D%3D.jpg?w=700&webp=1)
9、进行脚本编译、保存
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxMy5zaW5haW1nLmNuL213NjkwL2E2ZmI2Y2M5Z3g2Q2w5VjFaMXlmYyY2OTA%3D.jpg?w=700&webp=1)
10、等待编译完成,即可运行打包后的安装包
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3M3LnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbGFhRzVIb2U2JjY5MA%3D%3D.jpg?w=700&webp=1)
大功告成之后,即可进行安装!
(1)安装程序
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxLnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbGFneVBRWTkwJjY5MA%3D%3D.jpg?w=700&webp=1)
(2)此处显示授权文件中的内容
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3M3LnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbGFrbWN0MGM2JjY5MA%3D%3D.jpg?w=700&webp=1)
(3)选择安装目录
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxNi5zaW5haW1nLmNuL213NjkwL2E2ZmI2Y2M5Z3g2Q2xhcDR2Z2pkZiY2OTA%3D.jpg?w=700&webp=1)
(4)运行程序,并显示“自述文件”
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3M3LnNpbmFpbWcuY24vbXc2OTAvYTZmYjZjYzlneDZDbGFzcU1XYWM2JjY5MA%3D%3D.jpg?w=700&webp=1)
(5)运行结果
![Qt之打包发布(NSIS详解) Qt之打包发布(NSIS详解)](https://image.shishitao.com:8440/aHR0cDovL3MxMy5zaW5haW1nLmNuL213NjkwL2E2ZmI2Y2M5Z3g2Q2xhRHF3RkszYyY2OTA%3D.jpg?w=700&webp=1)
关于Qt的打包工具了解一些,个人感觉NSIS用起来比较顺手,脚本修改起来也方便,所以就推崇一下。。。若想将安装包变得更加美观,则需要手动修改脚本,更多信息请查找相关资料,此处不再多做介绍!
注:
技术在于交流、沟通,转载请注明出处并保持作品的完整性。