起因:
最近在UOS下开发客户端。给客户发了一个安装包,却被告知登录之后,客户端崩溃了!很奇怪,之前一直是正常的。
我在本地复现了这个bug。在终端中打开这个客户端,显示了如下错误:
Cannot mix incompatible Qt library (version 0x50b03) with this library (version 0x50c00)
经过:
从错误的字面意思是不能混合不完整的QT库。上网搜了下,都说要安装一些库依赖。一来网上说的这些库,我的客户端都用没用到。
二来客户端能正常打开,进入主界面就崩溃了。这就说明我的信赖库是正常的,否则连登录窗口也打不开。
至于到底哪里错了?我们尝试用qDebug写日志,看看是在哪里崩溃了。
结果:
经过对qDebug的输出日志分析,确定了原因所在。原来我之前将一张图片从png改为了svg格式,qt在调用 QImage img(imgUrl)的时候崩溃了。
有两种解决方法,一是把图片恢复为png格式。二是研究下为什么调用svg格式会失败。
我这边采用了第一种方法。反正这个图片用png也是ok的。
至于第二种方法,以后有空(ye)再(bu)研(xiang)究(nong)吧。