Qt程序报错:could not find or load the Qt platform plugin “xcb“ in ““.

Qt开发,在开发机上生成了可执行文件之后,连同其相关的共享库,一起拷贝至目标机:

双击没反应。用终端运行提示:

This application failed to start because it could not find or load the Qt platform plugin "xcb" in "". Reinstalling the application may fix this problem. 已放弃(核心已转储)

 这个问题折腾了很久都没有解决。尤其是花了很多时间去查询xcb,platform相关的内容,回头看其实是思路跑偏了。

今天,无意中闪过一个思路:对比法。

在开发机上,新建一个最简单的项目,就一个窗体和一个按钮,取名Test1, 构建,运行。

然后把可执行文件单独拷贝至目标机和本项目的可执行程序同一目录,双击,可以正常运行。

奇怪,为什么新建的程序可以运行而原来的程序报错?

尝试用ldd分别进行查看两者的库文件依赖:

1. ldd Test1

2. ldd ArtilleryAimLNX

对比可知:

正常运行的Test1, 直接引用了/usr/lib/arrch64-linux-gun目录下的库。

无法运行的ArtilleryAimLNX, 大部分都引用了同目录中的库,也就是 ../桌面/aim_exec_599/./这个目录。其中的/./显得非常奇怪:

 看上去这个奇怪的路径符号可能是导致程序不能运行的原因。

那么能否像Test1那样,直接引用/usr/lib/arrch64-linux-gun目录下的库呢?

尝试把可执行文件同目录的库文件(.so*)全部删掉,然后双击,居然可以运行了!

再用ldd查看引用:

 由于同目录的库被删了,现在可执行文件的库引用自动转向了/usr/lib/arrch64-linux-gun目录,路径里面没有奇怪的符号了。

至此,could not find or load the Qt platform plugin "xcb" in "". 这个现象算是搞清楚了,和xcb和platform没关系,而是库文件引用路径的问题,检查路径即可。

问题解决!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹰信息技术服务部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值