如何使用appimage部署qt5应用程序

时间:2016-04-15 07:27:28

标签: linux deployment qt5 appimage pythonqt

我正在使用appimage http://appimage.org将我的应用程序打包成独立的可删除文件。

我在debian测试lenny上做这个。

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

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

现在appimage在debian上运行,但不是薄荷,我得到了这个错误:

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树中复制了plugins目录。 我在主机apt-get install libx11-xcb1上安装了xcb

我的AppRun文件如下所示:

#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
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 -

我错过了什么?

1 个答案:

答案 0 :(得分:2)

许多Qt5应用程序(如Krita,Scribus和Subsurface)正在作为AppImages进行分发,因此绝对有可能。

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

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

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

如果您发布项目链接或在https://github.com/probonopd/AppImages/issues上打开问题,我可以为您提供更详细的说明。