Qt环境配置踩过的坑(0x0000139)

数字图像处理课设需要用到Qt。好久不用,按照官网安装教程安装好之后,发现无法编译运行程序,会报错:

20:01:34: Starting E:\Qt\Examples\Qt-5.11.2\widgets\itemviews\build-addressbook-Desktop_Qt_5_11_2_MinGW_32bit-Debug\debug\addressbook...
20:01:34: 程序异常结束。
20:01:34: The process was ended forcefully.
20:01:34: E:/Qt/Examples/Qt-5.11.2/widgets/itemviews/build-addressbook-Desktop_Qt_5_11_2_MinGW_32bit-Debug/debug/addressbook crashed.`

谷歌了一下之后,有人提到按F5调试会有别的报错信息出现:

During startup program exited with code 0xc0000139.
Qt环境配置踩过的坑(0x0000139)_第1张图片
执行失败

再次检索此错误码,发现一篇StackOverflow问答:

Qt环境配置踩过的坑(0x0000139)_第2张图片
StackOverFlow的回答

其实基本是楼主的自问自答hhhh。大概就是说这个错误码是你缺少一大堆.dll导致的,如果你不知道缺啥,可以用dependencyWalker看一下。尝试这玩意之后,发现的确可以看出来缺了啥dll,但是这东西运行起来慢得要死,还会报出一堆找不到API-MS的假警报。然后我福至心灵,进入到编译结果的文件夹,双击运行编译出的.exe:

Qt环境配置踩过的坑(0x0000139)_第3张图片
报错信息

得嘞!Qt月经问题。搜了一下解决方法有二:

  • 方法一:修改环境变量。
    在环境变量Path中加入Qt安装文件下{QtVersion}\mingw53_32\bin,例如,我将Qt5.11.2安装在E盘下,我的路径就是E:\Qt\5.11.2\mingw53_32\bin。也可参考QT5生成.exe文件时,出现缺少QT5core.dll文件解决方法这篇文章。

  • 方法二:把所有缺的.dll一个一个复制进编译生成的目录下。
    基本过程就是:尝试运行-->记住.dll的名称-->点确定-->在安装目录下找到.dll-->复制粘贴-->再次尝试运行……这样循环。

解决了找不到.dll的问题之后,再次尝试运行,又出现了新的坑:

Qt环境配置踩过的坑(0x0000139)_第4张图片
无法定位程序输入点

根据QT生成的exe无法定位程序输入点 于动态链接库 报错原因这是因为存在多个MGWIN,每个MGWIN的\bin\下都有一个libstdc++-6.dll 导致程序不知道该访问那个.dll。
解决方法有二:

  • 方法一:
    还是上面的文章里说的,把正确的libstdc++-6.dll复制过来。

  • 方法二:
    Qt中关于无法定位程序输入点的一种问题解决方式:
    前提:正确配置了qt的环境变量
    接着,把qt环境变量尽量放到前面,避免程序误认其他环境变量中包含的qt库(比如我的qt环境变量的前面是codeblocks的环境变量,结果就悲剧了,害我折腾那么久。)
    ps:如果不确定哪个程序还有qt库,可以在环境变量中慢慢试,一次向前移动一次,就可以测出来哪些软件还包含了Qt库。

但是方法二并没有对我起作用= =,我用的方法一。

至此这个问题成功解决。撒花花。

Qt环境配置踩过的坑(0x0000139)_第5张图片
成功运行

你可能感兴趣的:(Qt环境配置踩过的坑(0x0000139))