You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为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)

  1. 确认Yocto环境里有meta-qt6层(Kirkstone及以后版本的Yocto官方支持),在bblayers.conf中加入:
BBLAYERS += "${BSPDIR}/sources/meta-qt6"
  1. 在镜像配方的IMAGE_INSTALL里追加PySide6相关包:
IMAGE_INSTALL += "pyside6 pyside6-tools python3-pyside6"

针对Qt5(PySide2)

  1. 确认bblayers.conf中添加了meta-qt5层:
BBLAYERS += "${BSPDIR}/sources/meta-qt5"
  1. 在镜像配方的IMAGE_INSTALL里追加:
IMAGE_INSTALL += "pyside2 pyside2-tools python3-pyside2"

三、验证与构建

  1. 确保local.conf里的DISTRO_FEATURES包含x11(如需OpenGL支持再加opengl):
DISTRO_FEATURES += "x11 opengl"
  1. 重新构建镜像:
bitbake your-image-name
  1. 烧录镜像后,登录目标设备执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:43:30