Yocto添加本地tarball至Recipe报错求助
Yocto添加本地Ninvaders包报错的解决办法
问题根源
你写的SRC_URI语法有误——把file://开头的本地路径用${}包裹了,Yocto识别不出正确的fetcher类型,所以抛出ExpansionError。
具体修复步骤
修正SRC_URI写法
打开ninvaders.inc,把错误的写法改成:SRC_URI = "file:///home/user/Downloads/${BP}.tar.gz"重点:
file://前缀不需要加${},直接写就行,${BP}变量是对的,能自动展开成ninvaders-0.1.1。检查文件权限
确保当前构建用户能读取/home/user/Downloads/ninvaders-0.1.1.tar.gz,没有读权限的话用chmod +r调整。可选:改用recipe本地files目录(更规范)
为了方便维护,建议把压缩包放到recipe专属目录:- 在
recipes-extended/ninvaders下新建files文件夹 - 把
ninvaders-0.1.1.tar.gz复制进去 - 把
SRC_URI改成:SRC_URI = "file://${BP}.tar.gz"
Yocto会自动从这个
files目录找文件,不用写绝对路径。- 在
清理缓存重新构建
执行命令清理旧缓存再构建:bitbake -c cleansstate ninvaders bitbake ninvaders
内容的提问来源于stack exchange,提问作者strafor
相关产品推荐
相关产品推荐

