Linux(UOS)下打包发布QT程序

Linux(UOS)下打包发布QT程序及解决XCB问题

在linux中开发完成的QT程序,需要发布。本文讲述打包发布过程。

一、打包依赖库

参考《Linux下打包发布Qt应用程序》的步骤来打包,将安装包安装到一台全新的机子上时,程序却无法正常启动。提示

This application failed to start because it could not find or load the Qt platform plugin "xcb".

二,解决XCB问题

参考《This application failed to start because it could not find or load the Qt platform plugin "xcb".》这篇文章

首先我要在开发的机子上找到libQt5DBus.so.5。这也很简单,用 find / -name libQt5DBus.so.5 命令查找。我使用的是  xxxx/Qt5.9.1/5.9.1/gcc_64/lib/libQt5DBus.so.5 (不同机子的该文件目录可能不同)。

用同样的方法找到platforms,重新打包。

结果并不能解决 这个问题。但这篇文章却有很多人点赞。对此感到奇怪,可能是开发环境不一样吧。

我在stackflow找到一篇文章:(Qt 5.4.1) This application failed to start because it could not find or load the Qt platform plugin “xcb”。里面提到要导出QT插件的路径:

export QT_PLUGIN_PATH=<qt base path>/plugins

我将开发环境中的/plugins目录也全部一起打包,并安装,却仍然报这个问题。我仔细看了这片文章,里面提到要导出插件调试模式

export QT_DEBUG_PLUGINS=1

我在测试机上,导出这个变量后,给出了xcb问题更详细的日志。最后报错是说缺少 libQt5xcbqba.so.5 库。

用find命令,找到这个库。重新打包。

当在测试机上安装好后,打开终端,要先导出LD_LIBRARY_PATH和QT_PLUGIN_PATH变量,然后再运行QT应用程序,这样就正常了。

*经测试确认了以下两点:

1,libQt5DBus.so.5必须要一起打包

2,只需要打包plugins/platform目录即可

不过这两点,也可能是因为我的程序需要做这两个步骤.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值