用QT打包程序出现0xc000007b错误提示的解决办法
之前在公司项目过程中,出现一个棘手的问题,找资料问高手,都没解决,偶然在某个群里,有小伙伴也遇到同样的问题,有群友分享了方法,最终如愿解决,在这里做一记录。
问题描述
我在电脑A上使用QT打包命令windeployqt打包生成exe程序,在电脑B上运行正常,后期增加功能对代码进行了修改,是在电脑C上使用QT打包命令windeployqt打包生成exe程序,并将此exe程序替换电脑B上的exe程序。但程序运行过程中出现如图的错误:
原因分析
刚开始查阅资料,使用Depends.exe工具查看缺少的依赖,都一一加了进去,但运行时还是报同样的问题,后来自己猜想是编译器的问题。最后面才发现是windeployqt.exe版本的问题,QT windeployqt.exe版本号与 QT 版本一致,与MinGW版本号不一样。电脑A的windeployqt.exe版本是5.9,电脑C上的windeployqt.exe版本是5.3,导致打包生成的dll版本不一样,使得程序在运行过程中加载dll时找不到相应的入口,从而报错。
解决方案
保持windeployqt.exe版本版本一致即可