1

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

我在 debian 测试 lenny 上做这个。

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

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

现在 appimage 在 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

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

我确实在我的应用程序usr/lib树中复制了插件目录。我在主机上安装了 xcbapt-get install libx11-xcb1

我的 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 -

我错过了什么?

4

1 回答 1

4

许多 Qt5 应用程序(例如 Krita、Scribus 和 Subsurface)都作为 AppImage 分发,所以这绝对是可能的。

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

请参阅此处以获取将 Qt5.5 应用程序打包为 AppImage 的示例。

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

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

于 2016-04-17T20:22:27.587 回答