Yocto Hello World Recipe打包失败:已安装文件未被打包求助
解决Yocto Hello-World Recipe打包错误问题
问题分析
你遇到的错误核心是:do_install阶段成功创建了目录并复制文件,但FILES_${PN}的配置未正确将这些资源纳入打包范围,触发了Yocto的QA检查机制。
解决方案
方案1:简化FILES_${PN}配置
修改hello-world.bb中的FILES_${PN}部分,用一行配置同时覆盖目录及目录下所有内容:
FILES_${PN} += "/hw/"
这种写法会自动打包/hw目录本身以及其下的所有文件,简洁且避免遗漏。
方案2:明确指定所有打包项
如果你偏好逐一列出资源,可将两行配置合并(或保持两行,确保变量正常展开):
FILES_${PN} += "/hw /hw/hello-world.txt"
可选优化:使用规范的文件安装命令
在do_install中用install替代cp,符合Yocto最佳实践,能确保文件权限设置正确:
do_install() { install -d ${D}/hw install -m 0644 ${WORKDIR}/hello-world.txt ${D}/hw/ }
验证步骤
修改后重新执行构建:
bitbake hello-world
若构建成功,可通过以下命令验证打包结果:
oe-pkgdata-util list-files hello-world
该命令会列出hello-world包包含的所有文件,确认/hw和/hw/hello-world.txt已被正确纳入。
内容的提问来源于stack exchange,提问作者xAptive
相关产品推荐
相关产品推荐

