我正在使用Yocto构建系统为包含Qt5的树莓pi创建一个映像,但我在正确配置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
?
我试着设置如下(在我的发行版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;XWayland;X11
图形:eglfs;韦兰egl;xcb
export QT_QPA_PLATFORM=${GRAPHICS}