1.需求
很多公司都在使用Qt作为GUI库,在开发者的计算机上通常是利用配置PATH环境变量来实现调用Qt的DLL。然而当把开发后的软件直接部署在客户的电脑上,如果没有对应版本Qt的bin目录,就不能正常运行Qt程序,会报出缺少Dll,一般有经验的程序员会在一台干净的Windows虚拟机上反复运行自己编译的程序,通过报错来找出缺少的DLL,一个个复制到目录下,从而解决问题。或者把整个Qt目录下的dll分为Debug和Release两部分,然后根据需要把全部的Dll都给客户打包过去,后果就是这个包的体积很大。
2.解决方法
其实Qt从5.2以后是已经实现了一个为Windows开发者定制的部署工具,在QTDIR5.XXXXXXXin下的windeployqt.exe
只需要你在环境变量PATH中添加所需Qt版本的BIN目录路径,然后在CMD中运行
- windeployqt.exe [你的APP文件路径]
就可以自动复制所需的全部Qt的dll到你开发的APP的目录下。当然你如果还调用了其他运行时库的dll(如msvcp***.dll)就需要自己再去找对应的dll或者环境安装程序。