0.个人说明

第一次写博客,主要是因为这个问题困扰了一天,算是自己的解决(学习)记录,也希望整理所得,以下很多来自于他人博客与个人猜测,如有错误或侵权,请指出。

1.问题描述

之前我装过QT(好几个版本),之前运行没有问题,但这次出了问题,期间电脑的环境变量不知道为什么改变了(忘记是怎么变的了,主要是少了很多)
QT(5.9.9)新建项目(完全未修改)编译没有问题,执行遇到错误,如下图

debug调试结果如下:

在文件夹下直接运行.exe结果如下:

个人系统环境变量path如下:

2.解决方案

网上查阅很多,根据debug结果和直接运行.exe结果,结论就是缺少了dll文件,虽然运行结果说的是QT5Cored.dll,网上大部分说的是系统环境变量的问题,有的说是顺序问题(要把mingw53_32\bin放在最前面,说是因为其他的路径可能也包含一些库导致冲突),但是尝试过,没用,最终经过很多尝试,在.exe文件所在目录下加了libstdc+±6.dll就可以了。

在qt creator中运行也没问题。libstdc+±6.dll来自5.9.9\mingw53_32\bin文件夹,tools\mingw53_32\bin也有也可以(安装QT是Tools里我选了这个选项,用来交叉编译的,不选也问题不大)

3.解决过程

(这一部分主要记录自己走过的坑,如果上面的方法没有效果,希望这一部分对你有启发)

3.1尝试1 修改环境变量

就是把相关的dll所在路径加入系统变量,但是对我没用。具体添加那些看前面的系统变量图。

3.2尝试2 添加Qt5Cored.dll到执行目录

这一尝试主要看缺什么dll,就添加什么,都可以在mingw53_32\bin目录下找到,但是与我而言,无效。

3.3尝试3 Dependency Walker查看.exe依赖的dll

这是看的网上,利用Dependency Walker软件可以查看exe执行所依赖的dll,本想是看看是否缺少其他的dll,但是自己菜,搞了半天没搞懂。不过这个软件不错,有这样一个工具以后也许有用。
软件下载链接:https://www.dependencywalker.com/
简单教程链接:https://www.cnblogs.com/stemon/p/4556583.html

3.4尝试4 利用MinGW命令行windeployqt命令打包编译。

进入mingw命令行

cd切换到.exe文件的目录下,执行windeployqt test.exe,之后查看这个目录就会发现多了很多。

然后直接运行test.exe就可以了,在qt creator中运行也没问题了,之后我把这里面的一些dll和文件夹测试了一些(主要是新建一个项目,把这些dll放入新项目,运行exe看能不能运行),最后发现,只需要将libstdc++ -6.dll放入新项目就行了。也查看过pro工程文件,也看过mingw53_32\bin目录,也有这个文件,也把这个目录加入到了path,也试过把这个目录上移到第一条,但是没用。
有人说这是因为mingw的版本太多, 每个MGWIN的\bin\下 有一个libstdc+±6.dll 导致程序不知道该访问那个.dll。

windeployqt命令的具体操作可看此链接:https://blog.csdn.net/weijifen000/article/details/102537640
另:网上还有说换QT的新版本,如5.9换为5.9.9。我试了,对我没用。

4额外

自己在解决问题的过程中也了解到一些其他东西,比如Dependency Walker。除此之外就是dll加载的顺序了,如下
DLL的动态链接有两种方法。
一种是加载时动态链接(Load_time dynamic linking)。Windows搜索要装入的DLL时,按以下顺序:应用程序所在目录→当前目录→Windows SYSTEM目录→Windows目录→PATH环境变量指定的路径。
但是具体还需要考虑安全DLL搜索模式是启用或禁用。
具体内容参考这位大佬的博客。
https://blog.csdn.net/tuhuolong/article/details/5977877

Qt 错误 The process was ended forcefully(无法定位程序输入点 于动态链接库)相关推荐

  1. Qt 错误 The process was ended forcefully.

    使用Qt编写程序报错The process was ended forcefully.使用调试以后显示下边的错误.the inferior stopped because it triggered a ...

  2. 【Qt】【编译】【问题】无法定位程序输入点  ***  于动态链接库

    一. 问题描述:无法定位程序输入点  ***  于动态链接库 错误: 二.报错原因: QWebEnginePage.dll 污染了. 说很多时候需要调用动态链接库dll的时候,会出现dll污染的情况, ...

  3. 彻底解决Qt报错:无法定位程序输入点于动态链接库

    一.问题描述 前段时间使用Qt Creator写程序,在最后打包的时候出错,期间尝试修改环境变量的顺序,后来发现不是环境变量的问题,但问题解决后并未将环境变量改回,导致今天使用VS2019联合Qt编译 ...

  4. qt 无法定位程序输入点*******于动态链接库*****.dll上

    最近开始用qt做界面,做完的项目运行程序可以运行,但是直接去运行exe就出现如题目的问题.然后把对应提示的dll拷贝到exe所在文件夹,不起作用. 后来查到是libstdc++6-.dll的问题,于是 ...

  5. Qt软件打包后报错“无法定位程序输入点于动态链接库.exe上。”解决办法(超详细,看完不会怪我)

    目录 前言 一.出现类似如下界面: 二.通过尝试分析,这个界面出现的原因是因为自己没有设置环境变量 三.其次右击打开主菜单,选择系统选项 四.选择右边的高级系统设置 五.点击环境变量 六.再系统变量里 ...

  6. qt无法定位程序输入点解决方法

    qt无法定位程序输入点解决方法 更新日期:2020-05-12 14:53:22 来源:互联网 手机扫码继续观看 很多的小伙伴在使用电脑的时候肯定都遇到过QT无法定位程序输入点与动态链接库,给正常的使 ...

  7. Qt编译通过,运行时出现the process was ended forcefully问题的解决方案

    ** Qt编译通过,运行时出现the process was ended forcefully问题的解决方案 ** Debug和Release模式下编译均能通过,调用外部函数也不会提示错误,但是运行就 ...

  8. # 关于Qt程序异常结束, The process was ended forcefully问题

    Qt学习记录 关于Qt程序异常结束, The process was ended forcefully问题 今天在编写Qt信号槽函数的过程中,出现了: 14:38:42: 程序异常结束. 14:38: ...

  9. QT异常结束The process was ended forcefully

    在第一次进行qt项目的时候遇到了一个烦的问题,构建没问题,只要运行就会异常结束The process was ended forcefully,检查代码没有问题,百思不得其解 最后还是咨询老师后解决的 ...

最新文章

  1. “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识
  2. 史上最伟大的20位程序员中,遗憾没有中国人
  3. 公司--保存时验证数据是否保存重复
  4. 服务器数据恢复难题--操作系统恢复的方法和思路
  5. Git学习笔记:分支管理(1)
  6. CF235D-Graph Game【LCA,数学期望】
  7. 前端学习(3018):vue+element今日头条管理--反馈
  8. script language=JavaScript defer
  9. This program requires version 3.4.0 of the Protocol Buffer runtime library
  10. 计算机每个人都适合学吗,代码不等于计算机科学:为什么所有人都应该学习编程...
  11. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-5.开源工具的优缺点选择和抽象方法的建议...
  12. LINUX SHELL多条件(与、或)if判断怎么写?
  13. BXP无盘网络方案及设备选用(转)
  14. github 更纱黑体_【Freeplane相关】一招解决更纱黑体导出思维导图PDF的问题
  15. 基于selenium的python模拟登陆虎牙发送弹幕并截取主播头像
  16. 前端追梦人响应式网页设计
  17. 我们祝你虎虎生威! 百条春节短信奉送
  18. 编程 - 变量的命名方法
  19. 管理员禁止运行此应用的解决办法
  20. 【赛纳斯】EC Raman电化学拉曼光谱检测系统推动科研新突破

热门文章

  1. 微信小游戏|unity搭建3D篮球小游戏场景
  2. python列表中获取最长的字符串
  3. html盒子模型包含哪些部分,CSS盒子模型由哪四部分组成?
  4. B2C电子商务系统研发
  5. 确定与不确定,风险与保险
  6. Spring 马士兵
  7. AccountManager教程
  8. WORD文档打开文件时老提示发送错误报告,或者打印不全
  9. 远程桌面由于以下原因之一无法连接到远程计算机,富含多种解决方案,全网最详细
  10. 电量监测程序 c语言,基于单片机的电量检测系统设计方案.doc