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

在Yocto中为i.MX6Q构建Qt6遇报错,如何禁用gbm?

解决Yocto添加Qt6时virtual/libgbm相关编译错误

问题原因

第一个错误是Qt6的qtbase依赖virtual/libgbm,但当前构建环境中没有提供该虚拟包;手动添加PROVIDES后,Qt的CMake配置发现实际找不到GBM的头文件或库(gbm_FOUND=FALSE),因为imx-gpu-viv配方并没有真正安装GBM相关文件,只是声明了提供虚拟包。

解决方案

方案一:禁用Qt6的GBM支持(快速解决)

如果你的硬件不需要GBM显示后端(比如使用fbdev、Wayland或其他替代方案),可以直接让Qt6编译时跳过GBM:

  • 在local.conf中添加以下配置:
    # 方法1:通过QTBASE_CONFIG_FLAGS强制禁用
    QTBASE_CONFIG_FLAGS:append = " -no-gbm"
    
    # 方法2:移除qtbase的gbm PACKAGECONFIG选项
    PACKAGECONFIG:remove:pn-qtbase = "gbm"
    
    添加后重新构建镜像或qtbase即可。

方案二:正确提供virtual/libgbm(适合需要GBM的场景)

如果必须使用GBM,需要确保imx-gpu-viv真正提供GBM的库和头文件:

  1. 编辑meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc,在添加PROVIDES += virtual/libgbm的基础上,增加文件安装规则:
    PROVIDES += "virtual/libgbm"
    # 确保安装GBM的头文件和库
    FILES:${PN} += " ${libdir}/libgbm.so* ${includedir}/gbm/"
    
  2. 清理之前的构建缓存并重新编译:
    bitbake -c cleansstate imx-gpu-viv
    bitbake qtbase
    
    如果imx-gpu-viv本身不包含GBM组件,可能需要切换到支持GBM的GPU驱动配方,比如使用meta-freescale-3rdparty中的对应驱动,或者单独添加libgbm配方。

内容的提问来源于stack exchange,提问作者ieio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:22:49