问题现象
编译完成后,直接执行会提示系统错误:找不到Qt5Gui和Qt5Core.dll等动态库。
解决措施
使用windeployqt.exe打包工具,一次性收集所需要的dll文件,与exe文件一起发布。
先编译出release版本的exe文件,拷贝至一个空的文件夹中。
再执行windeployqt.exe
注意:用哪个工具编译的(mingw或者Visual Studio等),就调用对应的bin目录下面的windeployqt程序。
然后,所需要的dll都被拷贝过来了:
问题现象
还缺少一个libwinpthread-1.dll
解决措施
直接到bin目录下手动拷贝一下吧:
源路径:D:\Qt\5.15.2\mingw81_32\bin\libwinpthread-1.dll
拷贝后:
问题现象
无法定位程序输入点
解决措施
手动拷贝libstdc++-6.dll,替换原来的同名文件。
原因分析
比较了一个2个版本的libstdc++-6.dll,发现内容大小确实不一样。
那么,不正确的那个dll文件是从哪里来的呢?
用everything搜了一下:在C:\MinGW\bin下面有一个,
原因应该就是,windeployqt.exe工具发现exe文件需要libstdc++-6.dll,然后就根据系统PATH目录的配置去搜索。第一个就找到了C:\MinGW\bin\libstdc++-6.dll这个文件。
因此,网上找到很多方法是去更改PATH配置,让windeployqt.exe工具搜到正确的libstdc++-6.dll
补充说明
其实,也用不上那么多dll。精简版的如下: