简述
用Qt5.8版本在ubuntu16.04版本下编写Qt应用程序,生成release版本并打包,到另一台无Qt环境的linux系统中运行。
网上通常是按以下几个步骤进行:
1、生成release程序。
2、拷贝release程序到一个新文件夹,执行一个脚本文件。脚本文件的作用是:ldd 程序名,并拷贝程序依赖的库到这个新文件夹。
3、编写一个和程序同名的sh文件,以此作为启动程序。不直接用release程序启动的好处是可以无须配置环境变量,而把配置环境变量过程写在sh脚本文件中(当然也可以配置环境变量后运行release程序的方式启动程序)。
4、拷贝platforms文件夹到这个新文件夹。
5、拷贝整个新文件夹到新linux系统,发布完成。
作者在第5步后会提示failed to start because it could not find or load the Qt platform plugin “xcb” in “”的错误,由于对linux文件系统的不熟悉,研究了一天才解决。

解决
经过上网查询,这个问题主要是platforms文件夹中libqxcb.so的依赖库没有拷贝导致的。可是如何拷贝依赖库,是个大问题!
在程序当前目录下输入ldd platforms/libqxcb.so后,提示/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 “not found”,去原linux电脑中,确实找到了libQt5XcbQpa.so.5文件,但把这个文件拷贝到release所在目录下并没有效果!
研究了一天,才明白libQt5XcbQpa.so.5文件是链接文件!使用ls -al可以找到链接文件对应的源文件!把源文件拷贝到release目录下,再新建一个相同名字的链接文件,才算完成了这个libQt5XcbQpa.so.5资源文件的打包!!
新建链接文件的命令:ln -s $PWD/libQt5XcbQpa.so.5.8.0 libQt5XcbQpa.so.5。
同样的,还有一个libQt5DBus.so.5的链接文件,也要通过拷贝真实文件(libQt5DBus.so.5.8.0)到打包目录,然后通过ln -s $PWD/libQt5DBus.so.5.8.0 libQt5DBus.so.5命令建立同名的链接文件。
“xcb” in “”的问题完美解决,程序正常启动运行了。
————————————————
版权声明:本文为CSDN博主「lusanshui」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lusanshui/article/details/84988017

Linux下解决发布Qt程序报错:it could not find or load the Qt platform plugin “xcb” in “”相关推荐

  1. NULL 指针在不同平台下的表现引发程序报错(C 语言)

    NULL 指针在不同平台下的表现引发程序报错(C 语言) 为什么有这篇 正文 1. 使用环境 2.问题描述及展示 3. 走了些弯路 4. 柳岸花明(GDB 调试) 5. 访问 NULL 指针错误背后的 ...

  2. 为 VUE 项目添加 PWA 解决发布后刷新报错问题

    为 VUE 项目添加 PWA 解决发布后刷新报错问题 参考文章: (1)为 VUE 项目添加 PWA 解决发布后刷新报错问题 (2)https://www.cnblogs.com/morang/p/9 ...

  3. Linux下启动启动tomcat 服务器报错 The file is absent or does not have execute permission

    为什么80%的码农都做不了架构师?>>>    Linux下启动启动tomcat 服务器报错 The file is absent or does not have execute ...

  4. 命令行使用java运行程序报错:Could not find or load main class

    在初学java的时候希望新建一个类并且在命令行中运行它,偶尔会遇到上述报错,具体过程如下: d:/demo.java: public class Demo{public static void mai ...

  5. qt程序报错error C2248: “ThreadTest::ThreadTest”: 无法访问 private 成员(在“ThreadTest”类中声明)

    问题: 在qt程序中新增一个类,未继承任何类,后来增加继承类的时候,添加继承类和Q_OBJECT宏后编译报错: error C2248: "ThreadTest::ThreadTest&qu ...

  6. Qt程序报错:Socket notifiers cannot be enabled or disabled from another thread

    编写Qt中串口读写的程序,想当然的用了多线程,实际运行起来发现有警告信息: QSocketNotifier: Socket notifiers cannot be enabled or disable ...

  7. Linux下显卡掉卡,报错提示: rm_init_adapter failed, device minor number 7 Failed to copy vbios to system memory

    环境说明: Centos7 +Nvidia T4显卡 问题现象: 运行一段时间后,显卡掉卡,需要重新安装驱动解决.并且日志中报错: Apr 9 12:03:32 kernel: NVRM: GPU 0 ...

  8. 解决C语言程序报错:return type defaults to‘int’

    下面是通过自定义一个函数printN,之后在main函数中调用printN,使得可以通过输入整数N,将从1到N的全部整数都打印出来的程序. 但是在编译过程中却报错: return type defau ...

  9. TypeError: _typeof4 is not a function,解决微信小程序报错

    1.微信小程序编译后的报错截图: 2.报错问题解决:右上角点击"详情"=>"本地设置"=>"将JS编译成ES5"=>取消勾 ...

最新文章

  1. OCS2007安装配置指南
  2. 打patch p0 p1区别
  3. 【鸿蒙 HarmonyOS】Ability 中使用 XML 布局文件 绘制布局及 UI 组件
  4. 前20个关于FLEX技术、源码、实例、技巧的网站.
  5. android 获取弹窗的值,从弹出窗口调用的Activity 返回一个值_popupwindow_开发99编程知识库...
  6. Oracle即将发布的全新Java垃圾收集器 ZGC
  7. 工业级光纤收发器与光端机各自的作用及区别介绍
  8. jvm oracle sun,JVM - 常见的JVM种类
  9. 【C语言】第五章 迭代计算与循环结构 题解
  10. poj Muddy Fields
  11. 记录——《C Primer Plus (第五版)》第七章编程练习第八题
  12. Dell服务器RAID常用管理命令总结
  13. text-overflow样式属性值ellipsis的使用方法
  14. (15)Python识别文字,tesseract包
  15. 世界人工智能大赛 Top1 方案!手写体 OCR 识别
  16. Round14—最小生成树
  17. 洛谷入门-- P3717
  18. 仿百度统计html模板,YJHL仿百度统计 | CNZZ统计友盟源码
  19. CSS系列之连续的字母或数字在Html盒子中不会自动换行,直接溢出
  20. 用程序实现:给一个不多于4位的正整数,求出它是几位数,逆序输出各位数字?

热门文章

  1. MongoDB 常用运算符
  2. nuxt2.0 设置 webpack 路径别名
  3. Mac下Apache使用
  4. 关于Loadrunner 错误解决
  5. linux下jdk源码安装,Linux JDK 源码安装
  6. C#操作IIS6创建网站应用程序无效
  7. WCF RIA优缺点
  8. html页面text固定长度,HTML中input type=text和type=password 显示的长度不一样
  9. 艾创机器人_世界教育机器人大赛 2019赛季世界锦标赛落幕曲靖代表队获多个奖项...
  10. 计数排序的应用----排序字符串