首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wayland下运行Qt应用程序

在wayland下运行Qt应用程序
EN

Stack Overflow用户
提问于 2018-05-09 00:18:23
回答 1查看 9.1K关注 0票数 0

跑步:

代码语言:javascript
复制
./myapp -platform wayland

给予:

此应用程序无法启动,因为它无法在"“中找到或加载Qt平台插件"wayland”。 可用的平台插件有: eglfs、linuxfb、最小、最小、屏幕外、vnc、xcb。 重新安装应用程序可能会解决此问题。中止(核心倾弃)

以下说明:How to build qtwayland?

运行qmake提供:

运行配置测试..。完成了运行配置测试。 配置摘要: Qt客户端.不是 Qt Wayland Compositor .不是 注:未检测到wayland-egl支持。跨工具包兼容性禁用。

qtwayland自述文件指示了两个依赖项:

  1. XkbCommon0.2.0- http://xkbcommon.org/
  2. wayland 1.6.0 - http://wayland.freedesktop.org/

在fedora 28上,默认情况下安装libxkbcommon。此外,我还安装了libxkbcommon。

代码语言:javascript
复制
 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似乎解决了这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50243841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档