如何使用appimage部署qt5应用

How to use appimage to deploy qt5 application

我正在使用 appimage http://appimage.org 将我的应用程序打包到一个独立的可执行文件中。

我在 debian 测试 lenny 上这样做。

我的应用程序使用了很多开源库(qt,python pythonqt fftw hdf4/5 gsl netpbm qwt)并且使用 Qt4[= 一切正常36=]。我可以在 debian 上编译我的应用程序并创建一个 运行 在 mint(使用 xfce)上顺利运行的 appdir 映像。

当我切换到 Qt5 时,它停止工作了。

现在 appimage 运行s 在 debian 上,但不是在 mint 上,我得到这个错误:

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

Available platform plugins are: eglfs, kms, linuxfb, minimal, minimalegl, offscreen, xcb.

Reinstalling the application may fix this problem.
Aborted

请注意消息是不一致的:首先它说我缺少 xcb 然后它变得可用。

我确实在我的应用 usr/lib 树中复制了插件目录。 我在主机 apt-get install libx11-xcb1

上安装了 xcb

我的 AppRun 文件如下所示:

#!/bin/bash
HERE="$(dirname "$(readlink -f "[=11=]")")"
cd "${HERE}/usr/"
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${LD_LIBRARY_PATH}"
export PATH="${HERE}/usr/bin:${PATH}"
export QT_PLUGIN_PATH="${HERE}/usr/lib"
exec "${HERE}/usr/bin/Neutrino" "$@"
cd -

我错过了什么?

Krita、Scribus 和 Subsurface 等许多 Qt5 应用程序都作为 AppImages 分发,因此这绝对是可能的。

可能您缺少一些需要捆绑在 AppImage 中的组件。特别是,Qt 插件需要捆绑在 AppImage 中才能运行。

有关将 Qt5.5 应用打包为 AppImage 的示例,请参阅 here

请注意,一般建议使用旧的基础系统(如 CentOS 6)进行编译,因为生成的 AppImages 将兼容更多的发行版,而不仅仅是最新的。

如果你 post 一个 link 到你的项目或在 https://github.com/probonopd/AppImages/issues 上打开一个问题,我可能会给你更详细的指导。