如何将插件包含在QNA5桌面应用程序的SNAP中?

时间:2017-04-19 09:39:40

标签: plugins qt5 snapcraft

我有一个用QT5编写的Linux桌面应用程序,我想将它部署为SNAP包。 构建和安装有效,但应用程序不可执行,并出现以下错误:

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

这是我的snapcraft.yaml

name: animationmaker
version: '1.0'
summary: Create keyframe animation and export them to a movie file
description: |
  This app can be used to create animated movie based on keyframe animations.

grade: stable
confinement: strict

apps:
  animationmaker:
    command: AnimationMaker

parts:
  animationmaker:
    plugin: qmake
    qt-version: qt5
    source: https://github.com/Artanidos/AnimationMaker.git

我认为QT5的插件丢失但我不知道如何更改yaml以包含它们。 当我构建一个AppImage时,有以下插件包括iconengines,imageformats和platform。 有任何想法吗?

1 个答案:

答案 0 :(得分:0)

插件包含在libqt5gui5中,您可以将其添加为舞台包,如下所示:

parts:
  animationmaker:
    plugin: qmake
    qt-version: qt5
    source: https://github.com/Artanidos/AnimationMaker.git
    stage-packages: [libqt5gui5]

然而,Snapcraft支持远程部件,其中一个是一个出色的桌面Qt帮助器,可以为您提供这类东西,并设置一个共同的环境等。它有很好的记录in this tutorial,但为了完整,试试这个:

parts:
  animationmaker:
    plugin: qmake
    qt-version: qt5
    source: https://github.com/Artanidos/AnimationMaker.git
    after: [desktop-qt5]

使您的应用使用desktop-launch帮助:

apps:
  animationmaker:
    command: desktop-launch AnimationMaker