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

BitBake Recipe添加文件失败:目标文件找不到问题排查求助

解决BitBake Recipe无法找到本地文件的问题

看起来你遇到的核心问题是BitBake没有把你指定的本地文件复制到工作目录(WORKDIR),导致do_install阶段找不到文件。下面是具体的问题分析和修复方案:

问题根源

你的recipe缺少了inherit base这一行。base类是BitBake的基础类之一,它负责处理SRC_URI中定义的本地file://资源,自动将这些文件复制到构建的工作目录(${WORKDIR})中。没有继承这个类,BitBake只会解析SRC_URI但不会执行文件复制操作,自然在do_install时找不到文件。

修复后的完整Recipe

SUMMARY = "Horus Vizentec"
DESCRIPTION = "Horus Vizentec"
LICENSE = "CLOSED"
# 继承base类,处理本地文件复制
inherit base

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
SRC_URI += " file://horus-1.3.0.jar \
             file://application.properties"

do_install(){
    # 先创建目标目录,避免因目录不存在导致install失败
    install -d ${D}/home/root
    # 安装jar文件,若需要可执行权限保留0755,否则用0644即可
    install -m 0755 ${WORKDIR}/horus-1.3.0.jar ${D}/home/root
    # 配置文件使用0644权限更合理(只读,所有者可读写)
    install -m 0644 ${WORKDIR}/application.properties ${D}/home/root
}

额外优化说明

  1. 目录创建:添加install -d ${D}/home/root确保目标目录存在,有些Yocto构建环境默认不会包含/home/root目录,提前创建可以避免安装失败。
  2. 权限调整:.properties作为配置文件,使用0644权限更符合Linux文件权限规范;.jar文件如果不需要直接执行(比如通过Java命令调用),也可以改为0644。

验证方法

如果修复后仍有问题,可以进入构建工作目录检查文件是否存在:

cd /home/bernardo/yocto/genericx86-64-rocko-18.0.0/build/tmp/work/core2-64-poky-linux/horus/1.3-r0/
ls -la

如果文件已经出现在这里,说明base类已经完成了文件复制,do_install就能正常工作了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:55:05