跑步:
./myapp -platform wayland给予:
此应用程序无法启动,因为它无法在"“中找到或加载Qt平台插件"wayland”。 可用的平台插件有: eglfs、linuxfb、最小、最小、屏幕外、vnc、xcb。 重新安装应用程序可能会解决此问题。中止(核心倾弃)
运行qmake提供:
运行配置测试..。完成了运行配置测试。 配置摘要: Qt客户端.不是 Qt Wayland Compositor .不是 注:未检测到wayland-egl支持。跨工具包兼容性禁用。
qtwayland自述文件指示了两个依赖项:
在fedora 28上,默认情况下安装libxkbcommon。此外,我还安装了libxkbcommon。
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客户端的配置,正如上面的消息所示。
尝试使用dnf安装qt5-qtwayland,其中报告:软件包qt5-qtwayland-5.10.1-2.fc28.x86_64已经安装,跳过。
以下可能与此相关:
?提供libwayland的东西-egl.so
最后一次元数据过期检查: 0:18:44在2018年5月9日Wed 09:15:20下午+08。 qt5-qtwayland-5.10.1-2.fc28.i686 : Qt5 - Wayland平台支持和QtCompositor模块 回购:软脑膜 匹配来源: 提供: libwayland-egl.so
?查找/ -name libwayland-egl.so* -print
/usr/lib64 64/libwayland-egl.so /usr/lib64/qt5/plugins/wayland-graphics-integration-server/libwayland-egl.so
?sudo ldconfig -p \ grep wayland-egl
(libc6,x86-64) => /lib64 64/ libwayland-egl.so.1 (libc6,x86-64) => /lib64 64/ libwayland-egl.so
安装了QT5.11.0rc,这导致
~/Qt/5.11.0/gcc_64/plugins/wayland-graphics-integration-server/libwayland-egl.so
~/Qt/5.11.0/gcc_64/plugins/wayland-graphics-integration-server/libwayland-egl.so.debug
添加到~/Qt/5.11.0/gcc_64/plugins/平台中。
当我安装Qt5.11rc时,cmake的CMakeFile.txt突然停止工作,gcc无法找到像QDate这样的Qt头。
尝试使用Qt5.11编译示例项目“地址簿”,并得到:
QSocketNotifier:只能用于以QThread启动的线程 使用Wayland-EGL 使用‘xdg v6’shell集成
简而言之,使用Qt5.11rc似乎解决了这个问题。
发布于 2018-05-09 10:11:18
为什么配置QtWayland失败?
我假设(如果我错了,请纠正我),您正在尝试根据不包括QtWayland的官方Qt二进制文件构建QtWayland。
您安装了开发包吗?在你的情况下,我认为应该是wayland-devel。
顺便说一句,您看到的libwayland-egl.so是您发行版的qmake缓冲区集成版本(与qmake抱怨缺失的libwayland-egl.so依赖项不同)。但是,您应该仍然能够在没有wayland的情况下构建QtWayland,所以我不知道这是关于什么的。
其他备选方案:
1.使用正式的QtWayland二进制文件
您可能遇到了这个问题,因为Qt包以前不包括QtWayland。
但是,从QT5.11.0开始,正式的Qt二进制文件应该包括QtWayland,因此最简单的可能是安装QT5.11.0或更高版本。
2.使用发行版的Qt (和Qt Wayland)
从发行版安装并使用Qt,确保您也安装了qtwayland (在Fedora上,我认为是qt5-qtwayland)。
https://stackoverflow.com/questions/50243841
复制相似问题