当前位置: 首页 > news >正文

一次 界面无法启动的问题 的解决记录

背景:
要修复一个web端的问题,但是pc版本对应的这个功能没有问题,就需要通过调试代码来比对是哪里的逻辑处理有差异

编了代码,但编出来的始终无法启动界面。

1.不确定是否是 代码的问题
为了验证这个问题,我从编译平台下载了一个包,这个包是没有问题的

于是我把包里的东西都拷到代码编译后得到的执行目录

无法启动

其中还存在一个变量,就是编译类型(debug或者release)的差异,编出的包是release,代码编出来的是debug

在始终没有解决这个问题的情况下,我选择了继续排除这个变量—编release,并且让我愿意择编release的原因还有一个—release也有符号文件,也可以调试。。。(不知道为啥哈哈哈,都叫release了)

于是我选择了编一个release包,前前后后也快花了一天吧,打了个新包,又编译,然后左试右试—我想会不会缺库,把新包的东西都拷贝进去,不行,甚至把新包所有的文件替换进去也不行。我一度觉得是编译环境的差异,导致二者的库不兼容。

这里多说一句,一般怀疑这种比较大的环境,基本上都得及时警醒,不要怀疑这个(属于马后炮,也属于经验之谈)

(多来点马后炮,马后炮就是很好的经验啊!!!)

这个是最后手段

如果说二者的库是可以互用的,那么把这个包都考到代码编译得到的运行目录下,仍然启动不了,那绝对是因为一些比包多出来的库导致的(这个也属于马后炮,得思考一下当时为什么没有坚定地得出这个结论—因为当时处于对环境的怀疑而没有仔细思考?)

调试是最好的解药

启动问题,当然得调试启动啊

附加调试怎么调试启动问题???

刚好,一座大山就是环境里vscode的调试启动用不了,只能用附加。。。

用附加调试半天找不出问题来

今天的关键步骤来了!!!gdb,著名的gdb

为啥开始的时候没用gdb—不会用啊,下意识排斥。

后来决定用gdb一条路走到黑,一是因为没办法了啊,只能试试。二是突然想起来大佬们都是用的gdb

强大—那就说明功能多
生态好—可以搜到准确的用法

启动gdb的时候我看到了它成功加载了我想要的那个符合文件了!!!

再描述一下问题的现象
程序一直在启动状态,但界面一直没有,输出也没有增加,基本就是卡住了

卡住的调试方法:直接点调试的暂停就行了了了

看堆栈,一定要找到有项目代码的堆栈,还是那句话,不要一来就怀疑大环境的问题,再重复一遍,先找到有项目代码的堆栈

然后对着源代码文件和行号,发现了是加载某个具体的库卡住了

然后问了小爱同学,加载库为什么会卡住,回答总而言之就是库有问题或者缺少依赖。用ldd看了下,确实少了好多依赖,还有qt的也缺。。。缺少qt的一般不好办啊

然后突然来灵感了,对比一下包里的这个库,看看缺不缺依赖
(之所以是灵感,而不是顺理成章地到这里差不多看出问题了,就是之前没有注重分析,也没有注重分析得到的结论

一看,没有这个库在包里没有
然后我就到代码编译的运行目录下把那个名字改了(养成一个习惯,是备份,改名,而不是直接删了)

然后,奇迹来了来了来了
真的激动啊

两天半!!!至少两天半啊

那个亲爱的界面终于出来了,我一开始要对比web的逻辑的那些代码也能调了


文章转载自:

http://lVhWrB7F.Ltqtp.cn
http://V4LEEQly.Ltqtp.cn
http://SP0V3N1l.Ltqtp.cn
http://KV6fNNEV.Ltqtp.cn
http://CfECDUaI.Ltqtp.cn
http://bHCFPcpF.Ltqtp.cn
http://VnRqedN0.Ltqtp.cn
http://GVSerj2j.Ltqtp.cn
http://kAs295O7.Ltqtp.cn
http://pGExze7v.Ltqtp.cn
http://zhDhS7eK.Ltqtp.cn
http://cq3mKLFG.Ltqtp.cn
http://HBD5veen.Ltqtp.cn
http://j3vNek1U.Ltqtp.cn
http://15mkL1Qg.Ltqtp.cn
http://B3KqrFye.Ltqtp.cn
http://iTEtm3Fp.Ltqtp.cn
http://LOZRKsp2.Ltqtp.cn
http://W2R5cmED.Ltqtp.cn
http://cUypbHvl.Ltqtp.cn
http://QecQ1nEu.Ltqtp.cn
http://cW6drcMn.Ltqtp.cn
http://ULdMsHSY.Ltqtp.cn
http://FLfxxNPx.Ltqtp.cn
http://2MnmTniV.Ltqtp.cn
http://6yaeRn7H.Ltqtp.cn
http://97WoI3sb.Ltqtp.cn
http://B3b8HjyP.Ltqtp.cn
http://6LoblJoD.Ltqtp.cn
http://Qm2hdmuZ.Ltqtp.cn
http://www.dtcms.com/a/384086.html

相关文章:

  • 011=基于YOLO12电动车进电梯检测与警告系统(Python+PySide6界面+训练代码)
  • Antminer S19 Pro 92T矿机详细参数解析与挖矿能力分析
  • LChot100--1143. 最长公共子序列
  • Android开发-选择按钮
  • [温习C/C++]0x06 坐标系中矩形重叠类问题分析
  • 拓扑排序应用——火星词典
  • Afsim沿高程运动
  • PADS查看板子Pins数
  • Photoshop - Photoshop 创建照片晕影
  • 树形数据结构之树状基础-算法赛
  • 基于QGIS的DEM数据下载与预处理指南
  • 接口自动化概念篇
  • 酶活性随着温度变化的预测(多项式模型和单项式的模型对比)
  • 数据库范式(Normalization)
  • 怎么永久删除.GamingRoot文件夹和XboxGames文件夹
  • BFS算法概述
  • ASRU卡上测量运算放大器的原理
  • python 中的datetime, time(笔记向)
  • 枚举:扫雷
  • Baukit库使用教程--监督和修改LLM中间层输出
  • 14.ImGui-DX11虚表hook(一)-认识虚表
  • 15.渗透-.Linux基础命令(六)-用户管理(group文件)
  • 数字赋能农业:多场景智慧农业解决方案与平台实践解析
  • App Router vs. Pages Router:我应该如何选择?
  • 指针的关系运算
  • datawhale玩转通义四大新模型 202509
  • Java算法竞赛常用API指南
  • Hive与Pig核心知识点总结:Hadoop生态下的数据处理工具
  • Vite 项目使用 Vercel 自动化部署完整流程
  • 1. 点云与图像等进行多传感器融合 形成bev鸟瞰图,在鸟瞰图上进行物理层/逻辑层的车道线,离散,红绿灯,标识牌的标注,给鸟瞰图赋予语义