运行Qt构建的程序时出现无法找到入口问题
运行Qt构建的程序时出现无法找到入口问题
Xne3事情是这样的
由于课程需要,今天又把很久之前用过的Qt
装了回来,发现文档
里面还有上一次遗留下来的项目,就试着在文件夹里运行了一下,结果却……
啪的一下,很快啊
我检查了项目构建里的依赖调用
1 | E:\QT\5.14.2\mingw73_64\bin\qmake.exe C:\Users\Xne3\Documents\untitled4\untitled4.pro -spec win32-g++ "CONFIG+=debug" && E:/QT/Tools/mingw730_64/bin/mingw32-make.exe qmake_all |
跟运行的时候用的同一个啊,为什么会报错呢?
在网上搜Qt 无法找到入口
得到的答案不外乎
Qt版本混用
环境变量配置错误
我就只装过5.14.2
这一个版本的Qt,不存在版本混用,检查环境变量,Path
中也设置了E:\QT\5.14.2\mingw73_64\bin
最诡异的是,Qt creator
里调试所使用的也是系统环境变量,然而在Qt creator
里面调试程序能够正常运行,直接运行所构建的exe却会报错?!
我百思不得其解,在网上找了半天,各种方法都试了,就使用Qt自带的windeployqt
打包依赖稍微靠谱点
然而……
这都到同一个目录了还能出错啊???
在ChatGPT的建议下,我找到个上古软件Dependency Walker对untitled4.exe进行依赖分析
没错它是这么说的
然而不管我下载32位还是64位的Dependency Walker,一运行都是直接未响应,查了下才发现,Dependency Walker最后更新于2006年
好在Github上有大佬重写了一个Dependencies
用Dependencies分析了下发现libstdc++-6.dll
好像有点问题
有问题就换!
从某个犄角旮旯下了个libstdc++-6.dll
,替换掉C:/…/mingw-w64/bin里的之后……
更多报错出现了!
一气之下把libstdc++-6.dll
删了
结果程序正常运行了
再用Dependencies分析,发现这时候调用的libstdc++-6.dll
变成Qt目录下mingw73_64的了
我终于知道是怎么回事了,合着Qt5Core.dll调用的libstdc++-6.dll有俩,我环境变量里mingw-w64又在Qt之前,所以运行exe的时候会一直调用mingw-w64里的
最后把Qt的环境变量移到mingw-w64上面,问题解决了