Vs+Qt项目移植与升级问题总结(无法定位程序入口点)

1 概述

       本文章主要记录Vs+qt项目移植与qt版本升级中常见问题总结,便于后续查询。首先说明下项目开发环境差异:

1) 项目前期由同事开发,其电脑开发环境为VS2015+Qt5.12.10;

2)项目后期由本人维护,本人开发环境为VS2017+Qt5.14.2;

        下面我们对项目程序移植过程及遇到问题进行进行简要说明。

2 项目属性配置与重新编译

  1. 打开项目解决方案时,提示升级Windows SDK版本与平台集成工作,这里默认升级;
  2. 将qt的版本更改为vs2017版本;
  3. 重新编译项目代码,确认是否出错。

3 启动调试与调试问题解决

        项目编译成功后,开始启动调试。软件报错如下:

        查询网上该问题引起的原因可能是QT环境变量配置问题、dll版本等问题,下面依次解决。

3.1 QT环境变量配置

        电脑有多个qt版本时,系统环境变量配置为当前使用版本,并将其移动至系统变量较前位置,关闭环境变量窗口,关闭VS重新打开,问题没有解决,继续查看。

3.2 exe依赖的dll库版配置

3.2.1 问题定位

        查看VS错误输出信息,打印错误“0x00007FFE84152676 (ntdll.dll)处(位于 PR-2 BoostTransportTestSoft.exe 中)引发的异常: 0xC0000139: Entry Point Not Found。”

        查看网上文章“0x00007FFDDC67F85D (ntdll.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000139: Entry Point Not Found。无法找到程序入口-CSDN博客” 提示应该是debug文件下的dll软件版本问题引起,由此查看编译debug目录下的dll文件,发现qt相关版本仍为Qt5.12.10版本,而不是本地开发环境Qt5.14.2。

  3.2.2 解决方案

        将Qt5相关dll删除 ,重新编译软件,重新调试软件成功。

4 总结

        分析该问题的原因是,同事曾经使用“windeployqt”工具在debug目录发布exe程序,将Qt相关依赖库文件拷贝至debug目录下,编译时以debug目录下的dll程序版本为准,而不是以开发环境的Qt相关文件为基础,所以导致该问题。

        由于本人开发Qt不久,该问题困扰了好长时间,尝试过各类解决方案。在此说明,当出现问题时,先看VS输出的报的错误,基于该错误进行资料查找,不易查找错方向。

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值