Yocto Recipe构建失败:目录缺失及devtool路径疑问
Yocto开发疑问解答:devtool Recipe位置与构建目录错误问题
为什么devtool会将Recipe文件放在build目录?
devtool是Yocto专门用于临时开发调试的工具,默认会把生成的Recipe放在build目录下的workspace/recipes路径中。它的设计逻辑是让开发者在不改动正式层文件的前提下,快速搭建开发环境、调试Recipe,等功能验证完成后,再通过devtool finish <recipe-name> <layer-path>命令,自动把Recipe迁移到指定的自定义层(比如你的meta-layer),同时处理好相关路径配置。手动移动Recipe会破坏devtool生成的上下文关联,这也是后续构建报错的根源。
是否需要手动创建/work-shared/hello/1.0-r0目录?
不需要手动创建这个目录,报错是因为手动移动Recipe后,构建系统丢失了devtool原本设置的路径映射和上下文信息。可以按以下步骤解决:
- 先清理之前的构建残留:
bitbake -c cleanall hello - 确认你的meta-layer已经正确添加到
build/conf/bblayers.conf中 - 检查
meta-layer/recipes-hello/hello.bb里的路径变量:比如S(源码目录)、B(构建目录),devtool生成的Recipe会依赖它自己的工作区路径,手动移动后需要把这些变量调整为标准Yocto格式,比如如果源码是放在Recipe目录下的git仓库,可设置S = "${WORKDIR}/git" - 不要用
bitbake -b直接指定Recipe文件,而是执行bitbake hello,让bitbake自动从已添加的层中查找Recipe
内容的提问来源于stack exchange,提问作者DYD35
相关产品推荐
相关产品推荐

