设置构建环境(Linux/Ubuntu)¶
本文介绍如何在 Linux/Ubuntu 机器上设置构建环境。
在 Ubuntu 上设置¶
获取 git¶
Git 是一个免费开源的分布式版本控制系统,用于管理 ArduPilot 代码库。Git 适用于所有主流操作系统平台,并有多种工具可帮助用户轻松上手。
Git 命令行¶
乌班图¶
Linux/Ubuntu 用户可以使用 apt .NET 安装:
苏都 apt-get 更新
苏都 apt-get 安装 git
苏都 apt-get 安装 gitk git-gui
Windows操作系统和其他系统¶
下载并安装 git-scm.com 的下载页面
推荐的图形用户界面工具¶
git 命令行、gitk 和 git-gui 工具是所有用户都应安装的基本工具,可从一些地方获取。
下面列出了图形用户界面工具的完整列表 在 git-scm.com 但这里有几个开发者最喜欢的产品:
GitHub 桌面 是一款易于使用的工具,与 GitHub 集成良好,但功能少于其他客户端。
适用于 Windows 和 Mac OSX 的 Sourcetree 是一款功能齐全的工具,具有漂亮的界面和多种功能,包括允许在新提交中包含文件中的个别行(较简单的工具只允许包含整个文件)。
GitKraken 是一款功能齐全的工具,适用于 Windows、Mac 和 Linux。
克隆 ArduPilot 软件仓库¶
"克隆 "是 git 的术语,指为远程仓库(即 GitHub 服务器上的仓库)制作本地副本。
开发人员应克隆主 ArduPilot 存储库 (如果他们只是想下载和编译最新代码)或他们自己的 分叉 (如果他们想修改源代码,并可能将修改提交回来)。
常用工具的说明如下,但无论使用哪种工具,都需要提供源代码库的 URL。这可以在每个 Github 仓库主页的屏幕右侧找到,但一般来说,URL 是:
https://github.com/ArduPilot/ardupilot.git
主 ardupilot 软件仓库https://github.com/your-github-account/ardupilot
为您的 分叉 的软件包
使用命令行克隆¶
打开终端,导航到您希望保存克隆的目录
克隆你的叉子
git 复制 --递归-子模块 https://github.网/您的-github-用户名/ardupilot CD ardupilot
备注
如果某些防火墙不允许 ssh 访问,从而导致上述子模块更新失败,在这种情况下,可以通过以下命令告诉 git 单方面使用 https:
git 配置 --全球 网址."https://";.而不是 git://
使用 https 协议,而不是默认的 git:// 前缀。
安装一些必要的软件包¶
如果您使用的是基于 debian 的系统(如 Ubuntu 或 Mint),我们将为您提供 剧本 就能帮你完成。从克隆的 ardupilot 目录 :
工具/环境安装/安装-先决条件-乌托邦.吁 -y
重新载入路径(注销并登录以使其永久有效):
. ~/.概况
现在,您应该可以按照 BUILD.md.
备注
此时,您已经安装了 MAVProxy 地面控制站(MAVProxy GCS),并准备对飞行器代码进行软件环路 (SITL) 模拟。请参见 SITL 模拟器(循环中的软件) 和 在 Linux 上设置 SITL.您不仅可以构建代码,还可以在 ArduPilot SITL 模拟器中运行您的构建。
清洁¶
如果某些 git 子模块有更新,您可能需要进行一次完整的编译。为此,请使用
./waf 清洗
这将移除构建工件,这样您就可以执行 构建 零起点
使用 STM 工具链为其他发行版进行设置¶
在搜索路径中添加一些目录(交互式)¶
备注
只有在没有运行上一步的 install-prereqs 脚本的情况下。
在主目录下的".bashrc "末尾添加以下几行(注意文件名开头的.)。此外,这是一个隐藏文件,所以如果你使用文件管理器,一定要打开 "显示隐藏文件")。
export PATH=$PATH:$HOME/ardupilot/Tools/autotest export PATH=/usr/lib/ccache:$PATH
然后在终端中使用 "dot "命令重新加载 PATH
. ~/.bashrc
警告
如果您已经使用了 install-prereqs-ubuntu.sh
剧本
要在 Linux 上构建自动驾驶目标,您需要以下工具和 git 仓库:
的 gcc-arm 交叉编译器。 这里 (ArduPilot 仅在这些特定版本的 gcc-arm 上构建和测试;如果使用
apt-get
在许多情况下,gcc-arm 无法生成可运行的二进制文件)。gnu make、gawk 和相关的标准 Linux 构建工具
在 64 位系统中,您还需要安装 libc6-i386。
另外,值得一提的是,你要确保没有安装 modemmanager 软件包,也没有运行 modem-manager 进程。
编译器¶
你需要上面链接的特定 gcc-arm 交叉编译器。您需要将其解压缩到您想要的位置,现在我们暂且将此位置称为 TARGET_DIR:
CD TARGET_DIR
卷烟 -xjvf gcc-上膛-无-eabi-10-2020-q4-专业-x86_64-linux.卷烟.bz2
然后编辑 $HOME/.bashrc 文件,在文件末尾添加这样一行,将压缩包中的 bin 目录添加到 $PATH 中。TARGET_DIR 是之前选择的解压工具链的位置:
出口 PATH=$PATH:TARGET_DIR/gcc-arm-none-eabi-10-2020-q4-major/bin
备注
ArduPilot 4.1 之前的版本必须使用以下编译器:gcc-arm-none-eabi-6-2017-q2,可在以下位置找到该编译器 这里.
权限¶
您需要让用户成为拨号组的成员:
sudo usermod -a -G dialout $USER
您需要退出登录,然后重新登录才能使组别更改生效。
现在,您应该可以按照 BUILD.md.
ccache 可加快构建速度¶
安装 缓存 将大大加快编译速度。安装后(例如使用 "sudo apt-get install ccache"),你应该像这样将编译器链接到 /usr/lib/ccache:
CD /我们/lib/缓存
苏都 ln -s /我们/箱柜/缓存 上膛-无-eabi-g++
苏都 ln -s /我们/箱柜/缓存 上膛-无-eabi-gcc
然后将 /usr/lib/ccache 添加到 $PATH 前面
使用 Docker 进行设置¶
备注
除非在需要隔离构建环境的特殊情况下,否则不建议这样做。除非添加自定义选项,否则使用以下设置将无法在 SITL 中使用图形元素。
克隆 ArduPilot 软件仓库¶
"克隆 "是 git 的术语,指为远程仓库(即 GitHub 服务器上的仓库)制作本地副本。
开发人员应克隆主 ArduPilot 存储库 (如果他们只是想下载和编译最新代码)或他们自己的 分叉 (如果他们想修改源代码,并可能将修改提交回来)。
常用工具的说明如下,但无论使用哪种工具,都需要提供源代码库的 URL。这可以在每个 Github 仓库主页的屏幕右侧找到,但一般来说,URL 是:
https://github.com/ArduPilot/ardupilot.git
主 ardupilot 软件仓库https://github.com/your-github-account/ardupilot
为您的 分叉 的软件包
使用命令行克隆¶
打开终端,导航到您希望保存克隆的目录
克隆你的叉子
git 复制 --递归-子模块 https://github.网/您的-github-用户名/ardupilot CD ardupilot
如何构建 Docker 映像¶
构建 docker 镜像,并标记为 ardupilot:
装卸工 构建 . -t ardupilot
运行 ArduPilot 容器¶
以下命令会运行 docker 容器,将当前目录与 Ardupilot 源代码链接起来,并在容器内启动交互式 shell。在这里,你可以构建 Ardupilot:
docker run --rm -it -v `pwd`:/ardupilot ardupilot:latest bash