在ubuntu20.4下安装ardupilot 4.3.6

在从github重新安装ardupilot时遇到一系列问题,包括模块包缺失、gitrev-parse命令失败、AP_EFI.cpp参数不足和AP_OPENDRONEID.cpp的编译错误。解决方法包括使用gitadd添加文件、修改git_submodule.py中的代码、从github获取并替换文件内容以及注释掉导致错误的代码段。经过这些步骤,最终成功完成编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  这次重新安装真的是遇到了好多坑啊!
  从github上靠过来按照之前的那篇文章流程做完之后,还会有一些别的问题。首先是module里面的包都没有拷过来,所以需要用git add将文件都添加过来。
  之后进行编译时
  首先会出现这个情况:Command ['/usr/bin/git', 'rev-parse', '--short=8', 'HEAD'] returned 128
  这时需要将Tools/ardupilotwaf/git_submodule.py中的一段代码进行修改
  将
def _git_head_hash(ctx, path, short=False):

def _git_head_hash(ctx, path, short=False):
cmd = [ctx.env.get_flat('GIT'), 'rev-parse']
if short:
        cmd.append('--short=8')
    cmd.append('HEAD')
    out = ctx.cmd_and_log(cmd, quiet=Context.BOTH, cwd=path)
    return out.strip()


修改为

   def _git_head_hash(ctx, path, short=False):
    return "deadc0de"`

  之后会遇到这个问题:

  这是library文件夹下的AP_EFI.cpp文件,这里报的错误是参数不够。最终的解决方案是在github上搜索这个文件,将里面的内容全部复制过来替换这个文件即可。

  还有一个问题是在AP_OPEN DRONE ID.cpp这个文件,报错是没有was not in this scope ,这里我开始不知道怎么修改,因为在配置中opendroneid都是没有的。最终解决方案是将整段代码注释掉。
  最终即可编译成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值