meta-qt- yocto layer- 更改默认 qt 平台 (QT_QPA_PLATFORM)

meta-qt- yocto layer- change default qt platform (QT_QPA_PLATFORM)

我正在使用 Yocto 构建系统为 raspberry pi 创建包含 Qt5 的图像,但我在正确配置 qtbase 时遇到问题。
由于这些问题,当我 运行 Qt 应用程序时出现错误:

This application failed to start because it could not find or load the Qt platform plugin "xcb" in "".

Available platform plugins are: eglfs, minimal, minimalegl, offscreen.

Reinstalling the application may fix this problem.
Aborted (core dumped)

另一方面,如果我这样启动我的应用程序:

myApp -platform eglfs

它工作正常。如果我设置环境变量 QT_QPA_PLATFORM=eglfs 也是如此 - 它有效。

如何将我的默认平台设置为 eglfs 而不是 xcb

我试过如下设置(在我的 distro.conf 中):

DISTRO_FEATURES_remove = "x11"
DISTRO_FEATURES_append = " gles2"
PACKAGECONFIG_GL_pn-qtbase = "gles2"
PACKAGECONFIG_X11_pn-qtbase = ""
PACKAGECONFIG_pn-qtbase += "gles2"
PACKAGECONFIG_pn-qtbase += "dbus udev evdev widgets tools libs"

不幸的是,它没有帮助,如果我没有明确设置平台,我的应用程序仍然会显示此错误。

您只需:

/etc/profile中添加

export QT_QPA_PLATFORM=eglfs这样你每次登录机器,它都会自动为你做。

或者如果您不知道图形后端是什么。下面是对应的

后端:FB; X韦兰; X11

图形:eglfs;韦兰-egl; xcb

export QT_QPA_PLATFORM=${GRAPHICS}