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

Yocto/Bitbake do_compile阶段文件找不到问题求助

问题分析与修复

你的配方文件中S变量的设置错误,导致编译阶段找不到helloworld.c文件。

错误原因

通过SRC_URI = "file://helloworld.c"拉取的源码文件会直接存放在${WORKDIR}目录下,但你手动设置了S = "${WORKDIR}/${PN}-${PV}-${PR}",编译时BitBake会进入这个子目录查找源码,自然找不到目标文件。

修复后的配方

DESCRIPTION = "A friendly program that prints Hello World!"
PRIORITY = "1"

SECTION = "examples"

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

PV = "0.1"
PR = "r0"

SRC_URI = "file://helloworld.c"

# 移除错误的S变量设置,默认S=${WORKDIR}即可匹配源码存放路径
# S = "${WORKDIR}/${PN}-${PV}-${PR}"

do_compile() {
    ${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld
}

do_install() {
    install -d ${D}${bindir}
    install -m 0755 helloworld ${D}${bindir}
}

额外注意事项

  • 确认recipes-helloworld所在目录已添加到conf/bblayers.conf的BBLAYERS列表中,否则BitBake无法找到你的配方。
  • 若后续扩展多文件项目,可以使用Yocto自带的autotools或cmake类自动处理编译安装流程,无需手动编写do_compile和do_install。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:03:13