1、问题描述
在某次项目交付过程中,在用户的电脑上(Win10专业版)运行Qt的windeployqt打包的exe可执行程序(Win11家庭版,msvc64编译器),结果没有任何反应,在任务管理器中也没有发现程序运行,只发现了windows错误报告程序,但在几秒之后也立刻自动关闭。
2、错误排查
将打包的exe程序在其他电脑中运行(Win11家庭版、Win10家庭版),均可正常运行,起初怀疑可能是用户电脑杀毒软件拦截,但没有找到拦截信息,之后,将一台空闲电脑(Win10专业版)进行系统重置(保留文件),进行exe程序运行,发现出现同样无反应现象,通过Windows键+R打开运行窗口,在窗口中输入eventview,查看事件日志,发现报错信息为KERNELBASE.dll报错。
3、资料查找
在网上查找关于KERNELBASE.dll报错的资料,基本都说是文件损坏,但不可能多台电脑在同一个文件存在同样的损坏。继续查找其他资料,但没有较大的帮助。
4、解决方法
在没有其他头绪的情况下,尝试使用msvc32编译器进行编译,并重新打包,结果在重置的电脑上能够正常运行,继续尝试Release版本与Debug版本编译打包,发现均可正常运行,突发奇想,将原来的程序重新生成打包(x64,Debug),发现能够正常运行,猜测可能是Qt打包程序windeployqt在打包时出现错误或遗漏,导致此现象的出现。