Я пытаюсь развернуть приложение 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, но у меня ничего не получалось ... само приложение ничего не делает, это просто приложение-шаблон-виджет, поэтому я не буду публиковать код.