总问题:已经在A系统(arm架构,已安装QT5)编译好的QT程序,现在到B系统(arm架构,未安装QT)运行,各种报错

报错1:各种缺QT依赖库

解决思路:使用ldd命令,一个个找缺的库,从A系统拷贝过来,放到/usr/lib(或者/usr/lib/aarch64-linux-gnu)目录下

报错2:

This application failed to start because it could not find or load the Qt platform plugin "xcb".

Reinstalling the application may fix this problem.
解决思路:

步骤①:qt5为了方便移植引入了QPA,需要使用libQt5DBus.so.5的库,从A系统拷贝此库放到/usr/lib(或者/usr/lib/aarch64-linux-gnu)目录下

步骤②:拷贝A系统Qt5安装目录中的platforms目录,拷贝到B系统你的应用程序那个目录。我的是在/usr/lib/aarch64-linux-gnu/qt5/plugins/platforms

需要注意的是platforms里面有几个库,这每个库也要使用ldd命令来查看依赖库,缺库就从A系统拷贝,放到/usr/lib(或者/usr/lib/aarch64-linux-gnu)目录下

报错3(可忽略):

这里我使用xshell远程连接B的arm系统,有图像界面就会报这个

解决思路:

可以选择下载,或者按照指示关闭提示

报错4:

程序运行起来,段错误

解决思路:

能定位到是是死在main函数的QApplication a(argc, argv);这里。因为新系统没有QT,所以可以用linux gdb调试,发现是死在libxkbcommon这个库上面,应该是版本差异导致。从原系统拷贝过来就行。

参考博客:

This application failed to start because it could not find or load the Qt platform plugin "xcb"._codinglf的博客-CSDN博客

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐