QT程序报错 Cannot mix incompatible Qt library......的解决方法

在目标机上调试Qt程序,编译没问题,当运行程序时,程序闪退,并给出错误提示:

Cannot mix incompatible Qt library (version 0x40805) wiht this library (version0x40807)
Aborted (core dumped)

原因分析:
字面含义为:不能将不兼容的Qt库(版本0x40805)和(版本0x40807)进行混合使用;这说明当前系统中存在两个版本的Qt库,分别为485和487,程序运行时加载了不同版本的Qt库,导致运行错误。至于为什么会加载不同版本的qt库,原因在于当前环境变量的Qt库缺少程序运行所需的Qt库文件,此时程序会去其它环境目录以及系统目录中寻找对应的Qt库,并且找到了,但是版本不同。

对可执行程序使用ldd命令,对其运行所需的库进行全面检查,查看Qt库是否存在不同版本;如果不存在可对自己的so库进行检查,如果还有插件也一并检查,就能查出问题所在了。

解决方法:
保证程序运行时加载同一版本的Qt库即可。

方法1: 将所缺少的Qt库(同一版本)拷贝至对应的环境变量文件夹中。

方法2:进入Qt的安装目录,并进入lib文件夹,将其下的库文件备份至新建文件qt中,这样程序运行时就会全部加载另一版本的Qt库。
 例:

#cd  /usr/local/Trolltech/Qt-4.8.7/lib
#mkdir qt
#mv *Qt* qt
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值