当前位置: 首页 > backend >正文

关于qt缺少xcb问题终极解决办法

关于qt缺少xcb问题终极解决办法

  • 问题背景
    • 系统环境
    • qt版本
    • 问题描述
  • 解决过程
    • 走的弯路
    • 解决问题的关键
  • 总结

问题背景

系统环境

中标麒麟,龙芯平台

qt版本

qt5.6

问题描述

原来的Qt程序是qt5.3.2版本,但是由于各种原因,升级成了qt5.6版本。
编译完成后放在其他机器上报错缺少xcb,报错如下:

This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb, xcb.Reinstalling the application may fix this problem.

解决过程

走的弯路

几乎尝试百度到的各种方式,无非就这么几种。
1、运行目录下添加platform文件夹,文件夹里放上libqxcb.so。
2、指定环境变量,具体什么变量记不清楚了。
3、在运行目录下,添加
libQt5Core.so
libQt5Gui.so
libQt5Network.so
libQt5Widgets.so
libQt5DBus.so
libicuuc.so
libicudata.so
libicui18n.so

最终结果还是不行。

解决问题的关键

设置环境变量 export QT_DEBUG_PLUGINS=1
加了这个环境变量,让我看到了QT程序加载的过程,看到了详细的报错信息。
最后一部分是这样的:


Found metadata in lib /usr/lib64/qt5/plugins/platforms/libqxcb.so, metadata=
{"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3","MetaData": {"Keys": ["xcb"]},"className": "QXcbIntegrationPlugin","debug": false,"version": 329218
}Found metadata in lib /opt/dky/SASClient/bin/platforms/libqxcb.so, metadata=
{"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3","MetaData": {"Keys": ["xcb"]},"className": "QXcbIntegrationPlugin","debug": false,"version": 329216
}QLibraryPrivate::loadPlugin failed on "/usr/lib64/qt5/plugins/platforms/libqxcb.so" : "Cannot load library /usr/lib64/qt5/plugins/platforms/libqxcb.so: (/lib64/libQt5XcbQpa.so.5: symbol _ZNK11QFontEngine6handleEv, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference)"
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb, xcb.Reinstalling the application may fix this problem.

看到问题没?
/lib64/libQt5XcbQpa.so.5
这个库有问题。
于是我把libQt5XcbQpa.so,也放在运行目录下。
奇迹发生了,一切OK了!!!

总结

网上大部分搜到的解决办法,可能都是基于qt5.6之前的,但是qt5.6之后新加了几个库,所以网上的解决办法搜不到,所以才困扰了我这么久。
这次解决问题的关键在于,添加环境变量:export QT_DEBUG_PLUGINS=1
相信遇到此问题,利用这个方法,都可以很快的定位并解决问题了。
最后,祝大家好运!!!

http://www.xdnf.cn/news/11472.html

相关文章:

  • android 使用SQLite数据库详解
  • HIS系统门急诊医保实时结算接口测试
  • 倍投计算机器在线,2021看图开特马50研究计算倍投【欢迎你】
  • css设置滚动条样式
  • 网络管理与维护基本知识
  • android x86怎么样,Android x86 4.4安装体验(转载)
  • nii与nii.gz格式的关系
  • DWZ简介以及使用
  • csdn是什么
  • Android中GridView解析
  • perl下载与安装教程【工具使用】
  • perl 5.10.0安装包下载
  • Spring AOP全面详解(超级详细)
  • 网络负载平衡(NLB)详解!
  • 虚拟机-安装与使用(详细教程)
  • 智能dns调研及bind9搭建
  • FlashFXP 4.0注册码key 及教程
  • MFC内存映射文件
  • 软件工程专业值得考的8个证书
  • 使用C#判断字符串中是否包含中文字符
  • 【目标检测】58、目标检测中的正负样本分配策略总结
  • GaussDB数据类型转换介绍
  • pornstars java,Pornstar - QQ音乐-千万正版音乐海量无损曲库新歌热歌天天畅听的高品质音乐平台!...
  • 分享25个适合上班族的副业路子
  • Round Robin 算法
  • 常用的错误码介绍
  • 深入解析数码相机CCD坏点及噪点检测!【图解教程】
  • 容器化之-可视化镜像仓库管理(Harbor+阿里云oss)
  • 扒一扒那些叫欧拉的定理们(四)——平面几何欧拉定理美学鉴赏
  • PrepareStatement用法(附源码解析)