Linux下解决发布Qt程序报错:it could not find or load the Qt platform plugin “xcb” in “”
简述
用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 “”相关推荐
- NULL 指针在不同平台下的表现引发程序报错(C 语言)
NULL 指针在不同平台下的表现引发程序报错(C 语言) 为什么有这篇 正文 1. 使用环境 2.问题描述及展示 3. 走了些弯路 4. 柳岸花明(GDB 调试) 5. 访问 NULL 指针错误背后的 ...
- 为 VUE 项目添加 PWA 解决发布后刷新报错问题
为 VUE 项目添加 PWA 解决发布后刷新报错问题 参考文章: (1)为 VUE 项目添加 PWA 解决发布后刷新报错问题 (2)https://www.cnblogs.com/morang/p/9 ...
- Linux下启动启动tomcat 服务器报错 The file is absent or does not have execute permission
为什么80%的码农都做不了架构师?>>> Linux下启动启动tomcat 服务器报错 The file is absent or does not have execute ...
- 命令行使用java运行程序报错:Could not find or load main class
在初学java的时候希望新建一个类并且在命令行中运行它,偶尔会遇到上述报错,具体过程如下: d:/demo.java: public class Demo{public static void mai ...
- qt程序报错error C2248: “ThreadTest::ThreadTest”: 无法访问 private 成员(在“ThreadTest”类中声明)
问题: 在qt程序中新增一个类,未继承任何类,后来增加继承类的时候,添加继承类和Q_OBJECT宏后编译报错: error C2248: "ThreadTest::ThreadTest&qu ...
- Qt程序报错:Socket notifiers cannot be enabled or disabled from another thread
编写Qt中串口读写的程序,想当然的用了多线程,实际运行起来发现有警告信息: QSocketNotifier: Socket notifiers cannot be enabled or disable ...
- 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 ...
- 解决C语言程序报错:return type defaults to‘int’
下面是通过自定义一个函数printN,之后在main函数中调用printN,使得可以通过输入整数N,将从1到N的全部整数都打印出来的程序. 但是在编译过程中却报错: return type defau ...
- TypeError: _typeof4 is not a function,解决微信小程序报错
1.微信小程序编译后的报错截图: 2.报错问题解决:右上角点击"详情"=>"本地设置"=>"将JS编译成ES5"=>取消勾 ...
最新文章
- OCS2007安装配置指南
- 打patch p0 p1区别
- 【鸿蒙 HarmonyOS】Ability 中使用 XML 布局文件 绘制布局及 UI 组件
- 前20个关于FLEX技术、源码、实例、技巧的网站.
- android 获取弹窗的值,从弹出窗口调用的Activity 返回一个值_popupwindow_开发99编程知识库...
- Oracle即将发布的全新Java垃圾收集器 ZGC
- 工业级光纤收发器与光端机各自的作用及区别介绍
- jvm oracle sun,JVM - 常见的JVM种类
- 【C语言】第五章 迭代计算与循环结构 题解
- poj Muddy Fields
- 记录——《C Primer Plus (第五版)》第七章编程练习第八题
- Dell服务器RAID常用管理命令总结
- text-overflow样式属性值ellipsis的使用方法
- (15)Python识别文字,tesseract包
- 世界人工智能大赛 Top1 方案!手写体 OCR 识别
- Round14—最小生成树
- 洛谷入门-- P3717
- 仿百度统计html模板,YJHL仿百度统计 | CNZZ统计友盟源码
- CSS系列之连续的字母或数字在Html盒子中不会自动换行,直接溢出
- 用程序实现:给一个不多于4位的正整数,求出它是几位数,逆序输出各位数字?
热门文章
- MongoDB 常用运算符
- nuxt2.0 设置 webpack 路径别名
- Mac下Apache使用
- 关于Loadrunner 错误解决
- linux下jdk源码安装,Linux JDK 源码安装
- C#操作IIS6创建网站应用程序无效
- WCF RIA优缺点
- html页面text固定长度,HTML中input type=text和type=password 显示的长度不一样
- 艾创机器人_世界教育机器人大赛 2019赛季世界锦标赛落幕曲靖代表队获多个奖项...
- 计数排序的应用----排序字符串