Развертывание Qt в Ubuntu Core (оснастка), «не удалось найти или загрузить плагин платформы Qt» - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь развернуть приложение Qt в Ubuntu Core как просто. При запуске приложение запрашивает:

Не удалось запустить это приложение, так как не удалось найти или загрузить плагин платформы Qt "wayland" в "".

То же самое происходитдля XCB, когда я не буду использовать Wayland. Вот мой файл YAML, важная часть:

base: core18
architectures: [ amd64, armhf ]
grade: devel
confinement: devmode

apps:
  student:
    daemon: simple
    restart-condition: always
    command: |
      bash -c "mkdir -p $XDG_RUNTIME_DIR
               ln -s $XDG_RUNTIME_DIR/../wayland-0 $XDG_RUNTIME_DIR/
               $SNAP/opt/testroot/bin/testproject -platform wayland"
    plugs:
      - opengl
      - wayland
    environment:
      __EGL_VENDOR_LIBRARY_DIRS: "$SNAP/etc/glvnd/egl_vendor.d:$SNAP/usr/share/glvnd/egl_vendor.d"

parts:
  testproject:
    plugin: qmake
    project-files: [ "testproject.pro" ]
    source: .
    build-packages: [ g++, git ]
    stage-packages:
      - libdouble-conversion1
      - libfreetype6
      - libgl1
      - libglvnd0
      - libglx0
      - libgraphite2-3
      - libharfbuzz0b
      - libicu60
      - libpng16-16
      - libqt5core5a
      - libqt5gui5
      - libqt5widgets5
      - libx11-6
      - libxau6
      - libxcb1
      - libxdmcp6
      - qtwayland5
      - libstdc++6

layout:
  /usr/lib/x86_64-linux-gnu:
    bind: $SNAP/usr/lib/x86_64-linux-gnu

Он основан на этом уроке: https://tutorials.ubuntu.com/tutorial/wayland-kiosk - но я использовал плагин qmake для сборки, так что вот мои правила развертывания из testproject.profile:

qnx: target.path = /tmp/testroot/bin
else: unix:!android: target.path = /opt/testroot/bin
!isEmpty(target.path): INSTALLS += target

Необходимые файлы находятся на $SNAP/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms. Я пробовал много разных вещей, экспериментируя с макетами и QApplication :: addLibraryPath, но у меня ничего не получалось ... само приложение ничего не делает, это просто приложение-шаблон-виджет, поэтому я не буду публиковать код.

...