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
相关产品推荐
相关产品推荐

