运行:
./myapp -platform wayland
给出:
此应用程序无法启动,因为它无法找到或加载 Qt平台插件" wayland"在""。
可用的平台插件有:eglfs,linuxfb,minimal,minimalegl, offscreen,vnc,xcb。
重新安装应用程序可能会解决此问题。中止(核心 倾倒)
按照说明操作:How to build qtwayland?
运行qmake给出:
运行配置测试...... 完成运行配置测试。
配置摘要: Qt Wayland客户........................没有
Qt Wayland Compositor ....................没有
注意:未检测到wayland-egl支持。已禁用跨工具包兼容性。
qtwayland README表示2个依赖项:
在fedora 28上,默认安装了libxkbcommon。另外我还安装了libxkbcommon-devel
dnf whatprovides *wayland*
虽然我的gnome会话是在Wayland下运行的,但没有返回结果。
我看到我可以从https://wayland.freedesktop.org/releases.html下载wayland。 我下载并解压缩了1.15,但不确定如何处理解压缩源:我构建它吗?我需要把它放在qtwayland可以找到它的地方吗?
我发现默认情况下在fedora 28中存在以下文件:
/usr/lib64/qt5/plugins/wayland-graphics-integration-server/libwayland-egl.so
但是将其复制到〜/ Qt / 5.10.1 / gcc_64 / plugins / platforms 无法解决我的应用程序启动错误。
问题:如何让我的Qt应用程序在Wayland下运行?
为响应下面的bobbaluba问题而添加:
我正在尝试针对官方Qt二进制文件构建QtWayland,因为它不包括在内。
按照建议安装了wayland-devel,但是根据上面的消息,qmake仍然没有报告Qt Wayland Client的配置。
尝试使用dnf安装qt5-qtwayland,报告: 包qt5-qtwayland-5.10.1-2.fc28.x86_64已经安装,正在跳过。
以下内容可能相关:
? sudo dnf whatprovides libwayland-egl.so
上次元数据到期检查:0:18:44前于2019年5月9日星期三09:15:20 PM +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/plugins/wayland-graphics-integration-server/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 /插件/韦兰图形集成服务器/ libwayland-egl.so
〜/ QT / 5.11.0 / gcc_64 /插件/韦兰图形集成服务器/ libwayland-egl.so.debug
被添加到〜/ Qt / 5.11.0 / gcc_64 / plugins / platforms。
当我安装Qt5.11rc时,cmake的CMakeFile.txt突然停止工作 - gcc无法找到像QDate这样的Qt标头。尝试编译示例项目'地址簿'使用Qt5.11得到:
QSocketNotifier:只能用于以QThread启动的线程
使用Wayland-EGL
使用' xdg-shell-v6' shell集成
简而言之,使用Qt5.11rc似乎可以解决这个问题。
答案 0 :(得分:1)
我假设(如果我错了,请纠正我)你正试图建立QtWayland来对抗不包括QtWayland的官方Qt二进制文件。
您是否安装了开发包?在你的情况下,我认为它应该是wayland-devel
。
顺便说一句,你看到的libwayland-egl.so
是你的发布版本的qt wayland-egl缓冲区集成版本(与qmake抱怨的libwayland-egl.so
依赖项不同)。但是,你仍然可以在没有wayland-egl的情况下建立QtWayland,所以我不确定这是什么。
你可能遇到了这个问题,因为Qt软件包以前没有包含QtWayland。
然而,从Qt 5.11.0开始,官方Qt二进制文件应该包括QtWayland,所以最简单的方法可能是安装Qt 5.11.0或更新版本。
从发行版安装并使用Qt,请确保您还安装qtwayland
(在Fedora上我认为它是qt5-qtwayland
)。