QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法

最近项目要用qt,因为初学没有经验,遇到些小问题常常没什么头绪,也查不到解决方法,刚刚还因为低端错误耽误了群里一位朋友的时间。决定以后如果遇到类似小问题就记录下来,也方便初学者少走弯路了。

首先,qt动态编译发布程序一般是在Qtcreater中编译出release版本并运行后,在生成的release版本文件夹中取出exe。单独运行exe时会报错缺少dll,出现这个问题直接在qt库的文件夹中搜索提示的dll,放入exe所在的文件夹即可。

我遇到的(0xc000007b)问题也出在这个阶段,也是太粗心了。

报错(0xc000007b)的可能解决方法:

① 许多dll应当取自Qt5.4.0\5.4\msvc2013_64\bin目录下,而在Qt5.4.0\Tools\QtCreator\bin中也有许多同名的dll,直接搜索文件时Qt5.4.0\Tools\QtCreator\bin中的dll往往先蹦出来,如果将这些dll放到exe文件夹中,就会报错“应用程序无法正常启动(0xc000007b)”。碰到这种情况真是无解了,完全没有线索……所以如果出现这个问题,先确认下所拷贝dll的来源是否正确,qt程序对dll的要求是比较高的。

推荐使用一款软件Process Explorer来查询exe所依赖的dll有哪些以及具体地址在哪里,防止犯错。

在软件中进行如下设置:

之后打开Qtcreater,编译程序并运行,在Process Explorer中会出现exe的进程,鼠标选中后可在下方查看其所依赖的dll及其位置。一般在系统盘中的dll可以不管,主要看PATH位于Qt文件夹中的dll,那些有很多往往就是exe所需要的dll。

② qt5发布程序对于dll的放置也有一些要求和变化,在网上见到有人出现0xc000007b问题是因为qwindows.dll未放入。这里转发 derryzhang 的博文http://blog.csdn.net/derryzhang/article/details/17002193,讲解得非常详细。

由此,最后dll放置结构应是如此:

  1. --platforms
  2. --qwindows.dll
  3. --*.dll
  4. --accessible                    //Qt5.4中无此文件夹,故可忽略
  5. --qtaccessiblewidgets.dll//Qt5.4中无此文件,故可忽略
  6. --*.dll
  7. --plugins
  8. --folders
  9. --*.dll
  10. --yourApp.exe
  11. --Qt5Core.dll        //Qt5版本
  12. --Qt5Gui.dll
  13. --Qt5Widgets.dll
  14. --icudt49.dll       //Qt5.4中为icudt53.dll,下同
  15. --icuin49.dll
  16. --icuuc49.dll
  17. --libEGL.dll       //此两个dll如未用到openGL应该也可不放
  18. --libGLESv2.dll
  19. --libgcc_s_sjlj-1.dll(mingw)//编译器为mingw时才需要的三个文件
  20. --libstdc++-6.dll(mingw)
  21. --libwinpthread-1.dll(mingw)
  22. --msvcr110.dll(msvc)//编译器为msvc时才需要的两个文件,对应所用vs的版本号
  23. --msvcp110.dll(msvc)

截张我的(gdal111.dll为第三方的,可忽略):

③ 在某些论坛有人称是程序中存在指针越界的情况(编译可以运行怎么会出现这个情况,不解……),如果以上方法都不能解决问题,可尝试以此为思路。

在发布程序时如果遇到其他问题可参考 江湖么名 的这篇博文:http://www.cnblogs.com/mmix2009/p/3536825.html

对其他问题也有很详细的归纳。

QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法的更多相关文章

  1. IIS6.0发布后对路径“D:\xxx\xxxx\web.config”的访问被拒绝问题的解决方法

    原来我本机发布后还是可以直接通过浏览器访问,这几天不知道怎么就不行,终于在网上找到解决方法 IIS发布后访问xxx/xxx/web.config路径被拒绝的问题截图如下: 解决方法: 1.在本地或服务 ...

  2. vmware tools安装程序无法继续,Microsoft Runtime DLL安装程序未能完成安装。的解决方法

    vmware tools安装程序无法继续,Microsoft Runtime DLL安装程序未能完成安装.的解决方法_华英雄_新浪博客 http://blog.sina.com.cn/s/blog_5 ...

  3. (转)新建maven项目时报错Error:Maven Resources Compiler: Maven project configuration required for module 'XX'解决方法

    转载地址:https://blog.csdn.net/qq784515681/article/details/85070195 在新建maven项目时,Problems中报错: Error:Maven ...

  4. dubbo-admin-2.5.3 运行报错: Bean property 'URIType' is not writable or has an invalid 解决方法

    因为 jdk 是1.8的版本,和 dubbo-admin 存在兼容性问题.所以报错: Bean property 'URIType' is not writable or has an invalid ...

  5. OpenCV程序在Debug时出现「PDB文件无法加载」的一个解决方法

    这几天毕设要用到OpenCV,按照网上的教程来搭建开发环境. 用的是OpenCV 3.0 beta + Visual Studio Community 2013.我的系统64位是Win 8.1,但在加 ...

  6. error:安装手电筒程序后在打开程序后报错:你的camera flashlight正在被其他程序占据

    Q:没打开权限 A:设置里面,把这个app的camera权限打开就行了

  7. Android JNI 编译正确 但是提示程序有错误无法运行 而且还看不到任何错误提示 的解决方法

    前几篇中一直在通过Android做JNI调用,关于JNI的配置请见:http://blog.csdn.net/watkinsong/article/details/9849973 但是前一段时间就遇到 ...

  8. 小米手机无法打开程序报错Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication的解决办法

    打开studio的setting 然后 Preferences -> Build, Execution, Deployment -> Instant Run -> Enable In ...

  9. python3.x执行post请求时报错“POST data should be bytes or an iterable of bytes...”的解决方法

    使用python3.5.1执行post请求时,一直报错"POST data should be bytes or an iterable of bytes. It cannot be of ...

随机推荐

  1. HDU--2962

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2962 分析:最短路+二分. #include<iostream> #include< ...

  2. NYOJ--69

    数的长度 原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=69 分析:先看看求n!的朴素算法,用大整数乘法来实现. #include< ...

  3. OpenCV---图像二值化

    一:什么是二值图像 彩色图像:三个通道0-,-,-,所以可以有2^24位空间 灰度图像:一个通道0-,所以有256种颜色 二值图像:只有两种颜色,黑和白,1白色,0黑色 二:图像二值化 (一)先获取阈 ...

  4. 3.redis设计与实现--字典

    1.包括三个结构体:字典结构体+哈希表结构体+哈希节点结构体 2.如何解决哈希冲突? 答:redis使用的是链地址法来解决哈希冲突的,每个链表节点有一个next指针,最新加入的节点会放在链表的头部. ...

  5. 构造+分块思想 Codeforces Round #319 (Div. 1) C

    http://codeforces.com/contest/576/problem/C 题目大意: 给你一个曼哈顿距离的图,然后要求你找到一个链,链穿了所有的点 然后要求这链的长度<=25*10 ...

  6. 《JavaScript 实战》:实现拖放(Drag & Drop)效果

    拖放效果,也叫拖拽.拖动,学名Drag-and-drop ,是最常见的js特效之一.如果忽略很多细节,实现起来很简单,但往往细节才是难点所在.这个程序的原型是在做图片切割效果的时候做出来的,那时参考了 ...

  7. 【洛谷 P3199】 [HNOI2009]最小圈(分数规划,Spfa)

    题目链接 一开始不理解为什么不能直接用\(Tarjan\)跑出换直接求出最小值,然后想到了"简单环",恍然大悟. 二分答案,把所有边都减去\(mid\),判是否存在负环,存在就\( ...

  8. 【洛谷 P3690】 【模板】Link Cut Tree (动态树)

    题目链接 \(RT\). FlashHu巨佬的博客 #include <cstdio> #define R register int #define I inline void #defi ...

  9. python3爬虫.4.下载煎蛋网妹子图

    开始我学习爬虫的目标 ----> 煎蛋网 通过设置User-Agent获取网页,发现本该是图片链接的地方被一个js函数代替了 于是全局搜索到该函数 function jandan_load_im ...

  10. React Native DEMO for Android

    Demo1: 主要知识:navigator,fecth 地址:https://github.com/hongguangKim/ReactNativeDEMO1 Demo2: 主要知识:navigato ...