Yocto构建core-image-x11后树莓派3无法运行Qt6 QML应用求助
解决树莓派3 Yocto构建镜像运行Qt6 QML应用的问题
问题分析
你遇到的两个错误分别对应:
qt.qpa.xcb: could not connect to display:X11显示连接未正确配置qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin:Qt6.5的XCB插件依赖的包未完整安装(注意这里指的是包名,而非你看到的.so文件名)
具体解决方案
1. 补充Yocto构建依赖包
在Yocto构建目录的local.conf文件中添加以下配置,确保所需依赖包被纳入镜像:
IMAGE_INSTALL:append = " libxcb-cursor xcb-util-cursor qt6base-plugins xauth"
libxcb-cursor:提供Qt6 XCB插件所需的光标库xcb-util-cursor:libxcb-cursor的核心依赖包qt6base-plugins:包含Qt6的XCB平台插件(libqxcb.so)xauth:用于X11远程认证(适用于SSH连接运行应用的场景)
添加后重新构建镜像:
bitbake core-image-x11
2. 配置X11显示环境
在树莓派上启动Qt应用前,执行命令设置正确的DISPLAY环境变量:
export DISPLAY=:0
如果通过SSH连接设备运行应用,需启用X11转发功能:
ssh -X pi@<树莓派IP地址>
同时确认Xorg服务器已运行:
ps aux | grep Xorg
3. 验证Qt XCB插件依赖完整性
登录目标设备后,检查Qt6 XCB插件的依赖是否全部满足:
ldd /usr/lib/qt6/plugins/platforms/libqxcb.so
查看输出中libxcb-cursor.so.0的状态为found,若有缺失依赖,回到Yocto环境补充对应包即可。
内容的提问来源于stack exchange,提问作者Martin Dusek
相关产品推荐
相关产品推荐

