ubuntu16.04编译Firmware和Flow遇到的一些问题及其解决

ubuntu16.04编译Firmware和Flow遇到的一些问题及其解决

PX4

想按照官网编译PX4的Firmware和Flow源代码,途中不是很顺利。可能是官网文档针对ubuntu18.04做了一些内容调整,导致网上的博客不能很好的解决我遇到的问题。再加上我自己眼瞎,漏了一些步骤。不过我东搜西找瞎捉摸也还是成功了。

QGroundControl

第一个问题就是QGroundControl的下载安装,在网上能找到很多的安装教程,说是去官网下载qgroundcontrol.tar.bz2 ,终端安装附加软件包。或者下一个QGroundControl.AppImage,这也是官方Download&install的说法,但是我漏看了这句话:
那些附加包有部分需要ubuntu18.04才能安装。不知道有没有人和我一样眼睛不好。
Getting Start可以找到详细步骤,完成Source Code和Build QGroundControl两个部分即可。
Source Code部分:

git clone https://github.com/mavlink/qgroundcontrol.git --recursive

这里如果出现

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

这样的错误,多半是网速太慢了。我有参照这篇博客
设置缓存区大小,但是感觉最后还是靠的网速好起来才下好。网不好会真的绝望,断一下就从头开始。
下一句代码更新子模块:

git submodule update

这里也可能会出现问题。我出现的问题大概是这样:

fatal:referance is not a tree

这里我之前是fork之后再git clone,根据查到的资料,可能是由于对方代码上有未push的更新导致。总之,我重新按官方给的代码git clone,这个问题就消失了。

之后的部分按照官方来,当进行到最后一步按锤子build时,我出现了报错Werror,在QGCCameraIO.cc文件的79和179行:

[[fallthrough]];

原因可能和switch语句有关,但是它应该只是一个警告,而makefile文件中将警告都当成错误处理了。
这里我修改了/home/cug/Downloads/build-qgroundcontrol-Desktop_Qt_5_12_6_GCC_64bit-Debug/Makefile文件(这个文件夹好像是在按了build之后才出现),将CXXFLAGS参数中的-Werror删去了(文件中只出现一次)。更改后的该参数:

CXXFLAGS      = -pipe -g -std=gnu++11 -D_REENTRANT -Wall -W -Wno-deprecated-copy -Wno-unused-parameter -Wno-implicit-fallthrough -fPIC

再次build,成功。我在/home/cug/Downloads/build-qgroundcontrol-Desktop_Qt_5_12_6_GCC_64bit-Debug/debug下找到了QGroundCountrol文件(双击可运行)和qgroundcontrol-start.sh文件。运行后:
在这里插入图片描述

PX4 ToolChain

ubuntu官方安装步骤
我选择的是ubuntu_sim.sh,可能因为下面那个nuttx版本安装后需要重启吧。
之后到Common Dependencies应该都是需要做的步骤。后面的看需要再做。
而我眼瞎,又没有看到要安装依赖项,也就是Common Dependencies这一步没做。
也记录一下眼瞎行为吧,一步没做导致浪费许多时间。安装了python3-pip、empy、packaging、toml、numpy、pyyaml之后,Firmware能编译了;安装了arm-none-eabi-gcc之后,Flow编译成功。
做了一点点工作,把Common Dependencies步骤中的依赖写进了CommonDepend.sh里,终端执行

source CommonDepend.sh

即可完成依赖项安装。

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页