You need to enable JavaScript to run this app. Yocto编译驱动报错/bin/sh: 1: bc: not found,添加依赖未解决求助
优惠活动
大模型
产品
解决方案
定价
更多

Yocto编译驱动报错/bin/sh: 1: bc: not found,添加依赖未解决求助

Yocto驱动编译报错bc: not found 排查解决方案

前置说明

IMAGE_INSTALL_append = " bc" 配置完全不影响编译阶段依赖,该配置仅将bc安装到最终输出的目标镜像根文件系统中,可直接删除该冗余配置

排查步骤

  • 验证DEPENDS配置是否生效
    执行以下命令打印驱动配方的完整环境变量,确认DEPENDS中是否确实包含bc和bc-native:
    bitbake <你的驱动配方名> -e | grep "^DEPENDS"
    
    如果你是通过bbappend文件修改的依赖,需确认bbappend的文件命名、层级路径和配方优先级配置正确,未被其他配置覆盖。
  • 验证bc-native是否正常部署到构建环境
    先手动执行bc-native的安装任务:
    bitbake bc-native -c install
    
    检查构建目录下的tmp/hosttools/路径中是否存在bc可执行文件,同时确认你的项目没有自定义HOSTTOOLS变量屏蔽系统或原生构建的bc工具。
  • 修复编译脚本硬编码路径问题
    大部分此类问题是驱动的Makefile硬编码了/usr/bin/bc的绝对路径调用,导致无法识别sysroot下的bc-native工具,可通过两种方式修复:
    1. 给驱动Makefile打补丁,将bc调用替换为${STAGING_BINDIR_NATIVE}/bc
    2. 在驱动配方中显式将原生工具路径加入编译阶段的PATH优先级:
    EXTRA_OEMAKE:append = " PATH=${STAGING_BINDIR_NATIVE}:$PATH"
    
  • 修复编译任务环境变量丢失问题
    如果驱动配方重写了do_compile任务,没有继承Yocto默认的编译环境变量,需要手动在任务中导出PATH:
    do_compile() {
        export PATH="${STAGING_BINDIR_NATIVE}:${PATH}"
        oe_runmake
    }
    

临时验证方案

如果上述排查后仍定位不到问题,可手动将bc-native生成的可执行文件复制到构建环境的默认PATH路径下,确认是否是bc部署问题导致的故障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 03:57:03