Yocto 编译meta-ros涉及aws-common等包无法fetch时解决办法

编译meta-ros嵌入式包时,出现aws-*系列包无法fetch的状况举例,如编译aws-c-common,ERROR如下:

aws-c-common-0.4.15-r0 do_fetch: Fetcher failure: Unable to find revision e3e7ccd35a85f9cd38c67cb1988251f1543b6632 in branch master even from upstream

我们找到对应原始的aws-c-common_0.4.15_back.bb(使用指令find -name “aws-c-common*.bb找到文件”)配置内容如下:

原始配置内容如下:

# Copyright (c) 2019 LG Electronics, Inc.

SECTION = "devel"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"

SRCREV = "e3e7ccd35a85f9cd38c67cb1988251f1543b6632"
SRC_URI = "git://github.com/awslabs/${BPN}.git;protocol=https"
S = "${WORKDIR}/git"

inherit cmake

EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"

解决办法:

 

【下载源代码】我们首先到git上clone代码,比如放在/home/tuya/meta_ros_build_temp/downloads下,对应git文件夹名称为aws-c-common,clone命令:

cd /home/tuya/meta_ros_build_temp/downloads

git clone https://github.com/awslabs/aws-c-common.git

【第一步尝试】,如果我们将原始.bb文件按照上面方式改为:

SRC_URI = "git:///home/tuya/meta_ros_build_temp/downloads/aws-c-common;protocol=file“

并在meta-ros下进行:

bitbake aws-c-common

编译,会提示SRCREV = "e3e7ccd35a85f9cd38c67cb1988251f1543b6632"找不到。

 

【第二步尝试】接下来,如果我们强行在aws-c-common文件夹下使用:

git checkout e3e7ccd35a85f9cd38c67cb1988251f1543b6632

切换到SRCREV 指定的分支,可是checkout结果会提示报错,于是,我在aws-c-common文件夹下使用git branch -a 显示所有分支,切换到最新分支main(git checkout main)

然后再使用命令:

git checkout e3e7ccd35a85f9cd38c67cb1988251f1543b6632

即可成功切换。

【第三步】我们再次执行bitbake aws-c-common编译,发现还会提示报错,此时将.bb文件里面SRC_URI改为(结尾加了branch=main):

SRC_URI = "git:///home/tuya/meta_ros_build_temp/downloads/aws-c-common;protocol=file;branch=main"

再次在meta-ros下执行bitbake aws-c-common

SUC!!!!

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值