1. 使用windeployqt.exe打包库文件:
在开始菜单中Qt列表下找到对应版本的cmd,比如我用的是Qt5.9.3 MinGW,则对应的为Qt5.9.3 for Desktop (MinGW 5.3.0 32 bit)。
打开之后,cd转到release版本生成的exe文件目录下,比如我的放在了H:\Qt\Qt5.9.3\5.9.3\mingw53_32\pack文件夹下(pack为新建的文件夹),则cdH:\Qt\Qt5.9.3\5.9.3\mingw53_32\pack。
执行命令windeployqt UsbGpib.exe --qmldirH:\Qt\Qt5.9.3\5.9.3\mingw53_32\bin 。执行完可以在exe的目录自动生成依赖项。
2. 通过以上步骤,运行exe,依旧没有反应,将exe拷贝至qt的bin目录,可以运行,说明依赖项不全。
问题解决:
手动添加依赖项,查看依赖项的终极方法:qt creator debug,在main函数处加一个breakpoint,运行至breakpoint,“控件"-"视图(view)”-“modules”,既可以查看exe运行加载的所有dll。
将与qt有关的一一拷贝出来,主要为qt目录的“bin”、“plugins”、“qml”。
注意:拷贝时,应拷贝对应release版本的库文件,如qwindowsd.dll对应Debug版本,则实际应拷贝qwindows.dll。
注意:只拷贝这几个目录内的内容,目录本身去掉,如“plugins”-“platform”-qwindows.dll,只保留“platform”-qwindows.dll。
注意:“qml”目录存放的是qml插件,一系列.qmlc和.qml文件,调用到哪一个插件,就要将插件所在的整个文件夹拷贝出来,如调用了“qml\QtQuick\Controls.2”-qtquickcontrols2plugin.dll,则需要拷贝整个“QtQuick\Controls.2”文件夹。