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

(已解决)报错:Could not load the Qt platform plugin “xcb“

完整报错信息

  • QObject::moveToThread: Current thread (0x6a879f0) is not the object’s thread (0x61bb590).
    Cannot move to target thread (0x6a879f0)
  • qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found.
    This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
  • Available platform plugins are: xcb, eglfs, minimal, minimalegl, offscreen, vnc, webgl.

环境

  • 服务器环境为ubuntu18.04

发生原因

  • 我本人的发生原因应该是代码里涉及到的opencv库调用了qt库来进行一些图形用户界面(GUI)输出,但是服务器上的xcb依赖除了问题,导致上述报错

解决方案

  • 参考github链接
  • 方案一:设置QT_QPA_PLATFORM=offscreen环境变量(治标不治本)
    • 如果你的开发工作不需要图形用户界面(GUI)输出,或者你正在服务器环境中运行自动化测试或批处理作业,那么设置QT_QPA_PLATFORM=offscreen环境变量可能是一个更简单且有效的选择。这种方法允许你的应用程序在没有可用屏幕的环境中运行,避免了因尝试访问缺失的图形环境而导致的错误。
    • 适用场景:
      • 服务器端应用程序,不需要显示或交互的图形界面。
      • 自动化脚本和测试,这些脚本需要运行Qt应用程序但不需要GUI。
      • 开发环境受限,如无头服务器或容器环境。
    • 实现方式
      • 在终端输入export QT_QPA_PLATFORM=offscreen从而将该环境变量临时修改为offscreen,该修改在关闭当前终端后会自动生效
      • 要检查当前该环境变量的值,可以使用命令echo $QT_QPA_PLATFORM,如果这个变量没有被设置,命令不会输出任何内容。
  • 方案二:安装xcb库及相关依赖
    • 必要时可以考虑将已安装的xcb库卸载并重装
    • 所需要安装的依赖项可以见上面提到的参考链接

相关文章:

  • 资源哟正版无授权模版源码(含搭建教程)
  • 手机APP测试——如何进行安装、卸载、运行?
  • 中国电子学会(CEIT)2023年12月真题C语言软件编程等级考试二级(含解析答案)
  • 编程示例: 矩阵的多项式计算以javascript语言为例
  • 技术迷宫探秘:揭开前端花园、后端洞穴与数据科学密室的神秘面纱
  • 【解读】OWASP大语言模型应用程序十大风险
  • Java17 --- springCloud之LoadBalancer
  • centos7.9升级ssh和openssl
  • 设计模式学习笔记 - 规范与重构 - 2.保证重构不出错的技术手段
  • 探讨系统测试的最佳实践与思维模式!
  • Java8 CompletableFuture异步编程-进阶篇
  • 300分钟吃透分布式缓存-24讲:Redis崩溃后,如何进行数据恢复的?
  • Django学习笔记
  • ULTRAL SCALE FPGA TRANSCEIVER速率
  • python使用multiprocessing
  • Android优雅地处理按钮重复点击
  • CAP 一致性协议及应用解析
  • Hexo+码云+git快速搭建免费的静态Blog
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP的类修饰符与访问修饰符
  • RxJS: 简单入门
  • Swift 中的尾递归和蹦床
  • Vue 动态创建 component
  • vue-cli3搭建项目
  • 从tcpdump抓包看TCP/IP协议
  • 从零开始在ubuntu上搭建node开发环境
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 简单数学运算程序(不定期更新)
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 浅谈Golang中select的用法
  • 世界上最简单的无等待算法(getAndIncrement)
  • 我建了一个叫Hello World的项目
  • 我看到的前端
  • 学习ES6 变量的解构赋值
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 如何在招聘中考核.NET架构师
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (1)Nginx简介和安装教程
  • (2)STM32单片机上位机
  • (day 12)JavaScript学习笔记(数组3)
  • (多级缓存)缓存同步
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (三)终结任务
  • (转)Unity3DUnity3D在android下调试
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .CSS-hover 的解释
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net 程序发生了一个不可捕获的异常
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • @Autowired @Resource @Qualifier的区别
  • @media screen 针对不同移动设备
  • [C++]——带你学习类和对象
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘