Запуск приложения Qt под Wayland - PullRequest
0 голосов
/ 09 мая 2018

Продолжительность:

./myapp -platform wayland

дает:

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

Доступные плагины платформы: eglfs, linuxfb, minimal, minimalegl, за кадром, vnc, xcb.

Переустановка приложения может решить эту проблему. Прервано (ядро сбрасывали)

Следуя инструкциям: Как построить qtwayland?

Запуск qmake дает:

Запуск тестов конфигурации ... Закончено выполнение тестов конфигурации.

Настроить сводку: Клиент Qt Wayland ........................ нет

Qt Wayland Compositor .................... нет

Примечание: поддержка wayland-egl не обнаружена. Совместимость с несколькими инструментами отключена.

qtwayland README указывает на две зависимости:

  1. xkbcommon 0.2.0 - http://xkbcommon.org/
  2. Wayland 1.6.0 - http://wayland.freedesktop.org/

На fedora 28 libxkbcommon установлен по умолчанию. Кроме того, я также установил libxkbcommon-devel

 dnf whatprovides *wayland*

не возвращает результатов, хотя мой сеанс gnome выполняется под Wayland.

Я вижу, что могу скачать Wayland с https://wayland.freedesktop.org/releases.html. Я скачал и распаковал 1.15, но не уверен, что делать с распакованным исходным кодом: собирать ли его? мне нужно положить его куда-нибудь, где qtwayland сможет его найти?

Я вижу, что в fedora 28 по умолчанию существует следующий файл:

/ USR / lib64 / qt5 / плагины / Wayland-график-интеграция-сервер / libwayland-egl.so

Но скопируйте его в ~ / Qt / 5.10.1 / gcc_64 / plugins / платформы не разрешает ошибки запуска моего приложения.

Вопрос : как заставить мое приложение Qt работать под Wayland?


Добавлено в ответ на вопросы о боббалубе ниже:

Я пытаюсь собрать QtWayland против официальных бинарных файлов Qt, потому что он не включен.

Установлен wayland-devel, как было предложено, но qmake по-прежнему сообщал об отсутствии конфигурации для Qt Wayland Client, как указано в сообщении выше.

Попытался установить qt5-qtwayland с помощью dnf, который сообщил: Пакет qt5-qtwayland-5.10.1-2.fc28.x86_64 уже установлен, пропуск.

Может иметь отношение следующее:

? sudo dnf whatprovides libwayland-egl.so

Последняя проверка срока действия метаданных: 0:18:44 назад в среду, 09 мая 2018 г., 09:15:20 + 08.

qt5-qtwayland-5.10.1-2.fc28.i686: Qt5 - Поддержка платформы Wayland и модуль QtCompositor

Репо: fedora

Подходит от:

Обеспечить: libwayland-egl.so

? find / -name libwayland-egl.so * -print

/ USR / lib64 / libwayland-egl.so

/ USR / lib64 / qt5 / плагины / Wayland-график-интеграция-сервер / libwayland-egl.so

? sudo ldconfig -p | grep wayland-egl

libwayland-egl.so.1 (libc6, x86-64) => /lib64/libwayland-egl.so.1

libwayland-egl.so (libc6, x86-64) => /lib64/libwayland-egl.so

Установил Qt 5.11.0rc, что привело к

~ / Qt / 5.11.0 / gcc_64 / плагины / Wayland-график-интеграция-сервер / libwayland-egl.so

~ / Qt / 5.11.0 / gcc_64 / плагины / Wayland-график-интеграция-сервер / libwayland-egl.so.debug

добавляется в ~ / Qt / 5.11.0 / gcc_64 / plugins / платформы.

cmake CMakeFile.txt внезапно перестал работать, когда я установил Qt5.11rc - с gcc не удалось найти заголовки Qt, такие как QDate.

Попробовал компилировать пример проекта 'адресная книга' с использованием Qt5.11 и получил:

QSocketNotifier: может использоваться только с потоками, запущенными с QThread

Использование Wayland-EGL

Использование интеграции оболочки 'xdg-shell-v6'

Короче говоря, использование Qt5.11rc, похоже, решает проблему.

1 Ответ

0 голосов
/ 09 мая 2018

Почему не удается настроить QtWayland?

Я предполагаю (исправьте меня, если я ошибаюсь), что вы пытаетесь собрать QtWayland для официальных двоичных файлов Qt, которые не включают QtWayland.

У вас установлены пакеты разработки?В вашем случае я думаю, что это должно быть wayland-devel.

Кстати, libwayland-egl.so, как вы видите, является версией вашего дистрибутива интеграции буфера qt wayland-egl (а не такой, как зависимость libwayland-egl.soна что жалуется qmake отсутствует).Тем не менее, вы все равно должны иметь возможность собирать QtWayland без wayland-egl, поэтому я не уверен, о чем идет речь.

Другие варианты:

1.Используйте официальные двоичные файлы QtWayland

Возможно, вы столкнулись с этой проблемой, поскольку пакеты Qt ранее не включали QtWayland.

Однако, начиная с Qt 5.11.0, официальные двоичные файлы Qt должны включать QtWayland, поэтомупроще всего было бы установить Qt 5.11.0 или новее.

2.Используйте версию дистрибутива Qt (и Qt Wayland)

Установите и используйте Qt из дистрибутива, убедитесь, что вы также установили qtwayland (в Fedora я думаю, что это qt5-qtwayland).

...