在未安装QT的linux/arm架构上运行QT程序
总问题:已经在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 no
总问题:已经在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这个库上面,应该是版本差异导致。从原系统拷贝过来就行。
参考博客:
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)