使用平台:win7(64位) + Qt5.4.1 + QtCreator3.3.1
*本文所提到工具和Qt5.4常用依赖库已上传
传送门:http://download.csdn.net/detail/echojiangyq/8737003*
这个月公司对所有人员按照产品进行了分组,以后只负责此类产品的事务,手头的事情交接完后,这段时间安卓的代码还不需要维护,刚好组里要做一个桌面级的产测工具,就临时决定用QT写一个,到现在刚好一周。Qt程序编写起来很省力,发布时却着实让人头疼了一把,很多Dll都要自己手动甄选然后添加到包里,太不方便了,而网上的文章大多人云亦云,不太靠谱。下面记录下来备忘,也希望能帮到其他的小伙伴。
1.分析依赖库
这一步,网上普遍推荐使用 Dependency Walker,工具本身很强大,但是对于仅仅想使用它找出依赖库的小白来说,简直被虐哭了好嘛–。需要逐一找到以来的库,然后查看路径,拷贝到目标路径(自己exe所在的目录)下。
推荐使用微软的ProcessExplorer工具。可以清楚的看到引用了哪些位置的哪些库。
将除了plugins目录下的库之外的所有dll拷贝到目标路径,plugins目录的比较特殊,需要保持其目录结构,新建一个文件夹如“my_plugins”,将文件连带目录一起拷贝到这个文件夹中。
在Application中设置读取库的路径,让app自己去这个路径找依赖库。
QApplication::addLibraryPath("./my_plugins");
2.程序封包发布
Qt5相比Qt4依赖的dll很杂乱,为了避免用户误删dll导致程序不能正常运行,一般推荐进行封包。这儿有两种方式,1.打包成单文件,2.制作安装包。
1.打包成单文件
使用Enigma Virtual Box工具,打包很顺利,问题在于生成的文件被360杀毒软件检测未木马病毒(尴尬),虽然我们可以添加忽略,但是对用户而言这种误导对我们的程序而言绝对是致命的。推荐用这个软件打包来进行自测,但是不推荐用它发布程序。
2.制作安装包
使用Inno Setup compiler工具,制作安装包很顺利包,让我们的程序更正规些,可惜只有英文版的界面。使用方法请自行检索。
3.常用依赖库
小伙伴们可以按照名称自行搜索。
1.核心库(必须添加的)
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
2.网络库
Qt5Network.dll
2.ICU依赖库(Unicode工具)
icudt53.dll
icuin53.dll
icuuc53.dll
3.插件库(平台、图片处理、数据库…)
bearer目录(网络编程需要添加)
imageformats目录(图片处理需要添加)
platforms目录(windows下运行必须添加)
4.EGL依赖库
libEGL.dll
libGLESv2.dll
5.mingw依赖库
libstdc++-6.dll
libgcc_s_dw2-1.dll
libwinpthread-1.dll
6.其他
(QtCreator\bin目录下,https编程需要添加)
ssleay32.dll
libeay32.dll