ubunu qt5 移植依赖问题:This application failed to start because it could not find or load the Qt platform

在Ubuntu18上用 QT5 写GUI应用,结果报错:This application failed to start because it could not find or load the Qt platform plugin “xcb” in “”.折腾了一下,终于搞定。
报错的原因是有的Qt5的库没有包含在打包的应用中,如果能找到依赖的库,并让制定的库包含在应用的搜索路径中,即既要给出库,也要让应用知道你的库在哪里。

假设原来运行QT的是甲主机,自己编写的QT应用的移植到乙主机上。

  1. 我们先解决让自己的程序知道库放在哪里的问题(Ubuntu系统):
    在Ubuntu系统下,把库的路径依次加在乙主机的
    /etc/ld.so.conf
    文件后,就像
    在这里插入图片描述
    第一行是本来有的,后面两行是我自己添加的库路径。下面就把链接库放在上面的文件里。我的应用在 /ttt/Release下。
    然后,运行
ldconfig

重要!!!!!!!!
使设置生效!

  1. 寻找依赖的库
    利用ldd命令
    比如我的应用叫做 BigDataEditor,那就执行 ldd BigDataEditor
    具体的有时间再来补充,可以参考
    https://blog.csdn.net/u010168781/article/details/81458272

  2. 把甲主机的 platforms/文件夹(在/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms)复制到和应用同一级的目录,我的就在 /ttt/Release/

  3. 在乙主机调试,运行export QT_DEBUG_PLUGINS=1,再运行程序,逐步根据提示添加库,一般库都在甲主机的/usr/lib/x86_64-linux-gnu/文件夹下。比如一个调试界面:
    在这里插入图片描述错误的地方在下面
    在这里插入图片描述4ubmV0L2dlbmdsaTIwMTc=,size_16,color_FFFFFF,t_70)错误提示在括号里(libxkbcommon-x11.so.0),缺少这个库,在甲主机的/usr/lib/x86_64-linux-gnu/路径下寻找相应的库,不停添加依赖的库,直到不报错为止。

  4. 我还运行过sudo apt install xcb,安装xcb调试器,刚开始不能显示调试结果,就告诉你有错。

猜你喜欢

转载自blog.csdn.net/gengli2017/article/details/88070840
今日推荐