使用 Cygwin 在 Windows 上设置 waf 编译环境¶
这些设置说明介绍了如何设置 Cygwin 开启,这样 waf(构建系统)就能在 windows 上本地运行,并为所有支持的板卡构建。
备注
在 /ardupilot/Tools/environment_install/install-prereqs-windows.ps1 将自动执行以下所有步骤。
安装 Cygwin¶
打开网络浏览器 www.cygwin.com/install.html 并下载 "setup-x86_64.exe"。
在下载 "运行 setup-x86_64.exe "的目录下的 DOS 提示符下(按 window 和 R 键,然后输入 cmd)粘贴以下命令
设置-x86_64.exe -P autoconf,自动生成,缓存,cygwin32-gcc-g++,gcc-g++,git,libtool,生产,瞠目结舌,libexpat-发展,libxml2-发展,蟒蛇 37,蟒蛇 37-未来,蟒蛇 37-lxml,蟒蛇 37-核心,libxslt-发展,蟒蛇 37-发展,procps-ng,压缩,gdb,ddd
或者,进行阶梯式安装:
打开网络浏览器 www.cygwin.com/install.html 并运行 setup-x86_64.exe"
接受提示(包括默认文件位置),直到到达 选择套餐 对话框。
从数以千计的可用软件包中选择所需的软件包。请参考下面的列表,在搜索栏中输入每个软件包的 "名称",如下图所示。找到软件包后,点击 跳过 按钮将其更改为版本号,然后进入下一个软件包:
软件包名称
类别/名称/说明
autoconf
开发 | autoconf:autoconf 命令的封装脚本
自动生成
Devel | automake:automake 和 aclocal 的封装脚本
缓存
Devel | ccache:用于改进重新编译的 C 编译器缓存
cygwin32-gcc-g++
Devel | GCC for Cygwin 32 位工具链 (C++)
gcc-g++
开发 | gcc-g++ GNU 编译器集(C++)
git
Devel | git:分布式版本控制系统
libtool
Devel | libtool:通用库支持脚本
生产
Devel | make:GNU 版本的 "make "工具
瞠目结舌
解释器 | gawk:GNU awk,一种模式扫描和处理语言
libexpat-devel
Libs | libexpat-devel:Expat XML 解析器库(开发文件)
libxml2-devel
Libs | libxml2-devel:Gnome XML 库(开发中)
libxslt-devel
Libs | libxslt-devel:XML 模板库(开发文件)
蟒蛇 37
Python | python37:Python3 语言解释器
python37-devel
Python | python37-devel:Python3 语言解释器
python37-future
Python | python37-future:为 Python 3 和 Python 2 提供简洁的单一源代码支持
python37-lxml
Python | python37-lxml:Gnome XML 库(Python 绑定)
python37-pip
Python | python37-pip:Python 软件包安装工具
procps-ng
system | procps-ng:系统和进程监控实用程序(pkill 需要)
gdb
Devel | gdb:GNU 调试器
ddd
Devel | ddd:DDD:数据显示调试器
压缩
存档 | 压缩:Info-ZIP 压缩工具
选择所有软件包后,点击其余提示并接受所有其他默认选项(包括附加依赖项)。
选择 完成 开始下载和安装软件包。
警告
有时,安装可能会因为防病毒软件正在运行而停止。如果出现这种情况,请关闭电脑上的所有其他程序,包括防病毒软件,然后再试一次。
安装 GCC 编译器¶
备注
只有打算为基于 ARM 的电路板编译时才需要此步骤。
从以下网址下载并安装最新的 gcc-arm-non-eabi 编译器 firmware.ardupilot.org/Tools/STM32-tools (快速链接在此)
接受许可证
安装到默认位置
接受 SSL 证书
选中 "将路径添加到环境变量 "选项
安装 MAVProxy¶
运行 SITL 时需要使用 MAVProxy GCS。如果不打算运行 SITL,可以跳过这一步。
要在 Windows 上安装 MAVProxy,请遵循 MAVProxy 文档.
在 Cygwin 中设置目录/路径和额外软件包¶
从桌面或开始菜单图标打开并关闭 "Cygwin 终端 "应用程序。这会在 Cygwin 主目录下为用户创建初始化文件。
从桌面或开始菜单图标打开 "Cygwin 终端 "应用程序。输入以下命令,将 Python 3.7 设置为默认 Python,然后安装其他 Python 软件包:
ln -s /我们/箱柜/python3.7 /我们/箱柜/蟒蛇
ln -s /我们/箱柜/管道3.7 /我们/箱柜/核心
核心 安装 空虚 串行 pymavlink
下载 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://";
使用 https 协议,而不是默认的 git:// 前缀。
使用 Waf 构建¶
现在,您应该可以从 Windows 开始菜单启动 "Cygwin 终端 "应用程序,并按照以下说明使用 waf 进行构建。 BUILD.md.
警告
如果某些文件的文件路径过长,编译可能会失败。如果编译失败,请尝试 克隆 ArduPilot 到目录结构中很高的目录(即 ~/ardupilot)。
如果在构建过程中出现缺少数据包 xyz 的错误,请重新检查是否已安装上述所有 Cygwin 软件包
运行 SITL¶
您可以像在其他构建环境中一样运行 SITL。要看到终端,你应该安装 VcXsrv 或其他 Windows X 服务器应用程序。然后,你必须通过设置 DISPLAY 变量来告诉 Cygwin 在哪里寻找显示屏。
出口 显示屏=:0.0
为 Windows 构建 SITL 二进制文件¶
您可以构建 32 位二进制文件,以便在 Cygwin 之外运行,只需少量配套文件即可。当与 Mission Planner 结合使用时,这将非常有用,可以使用稳定的发布版本而不是 ArduPilot 开发分支的版本来运行 SITL。方法是在 Cygwin 中使用下面的命令编译,然后将二进制文件复制到 "sitl "文件夹,该文件夹通常位于 C:\Users\user\Documents\Mission Planner\sitl。Mission Planner地面站将在首次运行 SITL 时下载所需文件。首次运行后,可以用您构建的文件替换载具特定的二进制文件。自定义 SITL 二进制文件应位于 /ardupilot/build/sitl。
./waf 配置 --官方=坐标 --工具链 x86_64-pc-cygwin