为Intel CPU的x86/amd64目标Yocto镜像添加Qt6/PySide支持
解决方法
一、修正镜像配置文件
你当前的配置有几个关键问题,直接导致目标设备找不到qmake:
DEPENDS += "qtbase"是构建阶段依赖,仅在编译镜像时生效,不会把Qt相关包安装到目标设备里,得换成IMAGE_INSTALL指定要打包进镜像的内容。inherit qt6-qmake是给Qt应用配方用的继承类,镜像配方不需要这个,直接删掉。REQUIRED_DISTRO_FEATURES里的ptest不是必需项,除非你需要测试功能,可按需保留或移除。
修改后的Qt6镜像配方示例
SUMMARY = "A full-featured basic X11 + PySide image." LICENSE = "MIT" IMAGE_FEATURES += " splash package-management x11-base" # 安装Qt6核心运行库、开发工具(含qmake)及辅助工具 IMAGE_INSTALL += "qtbase qtbase-dev qtbase-tools" COMPATIBLE_MACHINE = "intel-corei7-64" inherit core-image features_check REQUIRED_DISTRO_FEATURES = "x11" QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}'
如果用Qt5,只需把包名换成qtbase5 qtbase5-dev qtbase5-tools,同时确保bblayers.conf里添加了meta-qt5层。
二、添加PySide支持
针对Qt6(PySide6)
- 确认Yocto环境里有
meta-qt6层(Kirkstone及以后版本的Yocto官方支持),在bblayers.conf中加入:
BBLAYERS += "${BSPDIR}/sources/meta-qt6"
- 在镜像配方的
IMAGE_INSTALL里追加PySide6相关包:
IMAGE_INSTALL += "pyside6 pyside6-tools python3-pyside6"
针对Qt5(PySide2)
- 确认
bblayers.conf中添加了meta-qt5层:
BBLAYERS += "${BSPDIR}/sources/meta-qt5"
- 在镜像配方的
IMAGE_INSTALL里追加:
IMAGE_INSTALL += "pyside2 pyside2-tools python3-pyside2"
三、验证与构建
- 确保
local.conf里的DISTRO_FEATURES包含x11(如需OpenGL支持再加opengl):
DISTRO_FEATURES += "x11 opengl"
- 重新构建镜像:
bitbake your-image-name
- 烧录镜像后,登录目标设备执行
qmake --version,就能看到版本信息,PySide应用也能正常运行。
四、额外提示
- 如果只需要运行PySide应用,不需要开发工具(比如
qmake),可以删掉qtbase-dev和qtbase-tools(或Qt5对应包),只保留qtbase和PySide相关包。 - 注意Yocto版本和Qt层版本匹配,比如Kirkstone对应meta-qt6 6.4.x,避免版本不兼容问题。
- 遇到依赖缺失时,用
bitbake -g your-image-name生成依赖图,排查缺少的包。
内容的提问来源于stack exchange,提问作者Pankaj
相关产品推荐
相关产品推荐

