Windows Cygwin开发环境(维护说明)
本主题介绍如何构建和扩展已不再支持的基于Cygwin的Windows开发环境。
附加信息
特性 / 问题
已知以下特性在版本2.0中可以正常工作:
- 使用jMAVSim构建并运行软件在环(SITL)仿真,性能比虚拟机显著提升(它会生成原生Windows二进制文件 px4.exe)。
- 构建并上传NuttX版本(例如:px4_fmu-v2和px4_fmu-v4)
- 使用 astyle 进行代码风格检查(支持命令:
make format
) - 命令行自动补全
- 非侵入式安装程序!安装程序不会影响你的系统和全局路径(它只会修改所选的安装目录,例如 C:\PX4,并使用临时的本地路径)。
- 安装程序支持更新到新版本,同时保留你在工具链文件夹中的个人更改
不足之处:
- 仿真方面:不支持Gazebo和ROS。
- 仅支持NuttX和JMAVSim/SITL构建。
- 已知问题(也可用于报告问题)。
使用Shell脚本安装
你也可以使用Github项目中的Shell脚本来安装该环境。
确保你已经安装了适用于Windows的Git。
将代码仓库https://github.com/PX4/windows-toolchain克隆到你想要安装工具链的位置。通过打开
Git Bash
并执行以下命令,可以使用默认的位置和命名:shcd /c/ git clone https://github.com/PX4/windows-toolchain PX4
如果你想安装所有组件,导航到刚克隆的文件夹,然后双击位于
toolchain
文件夹中的脚本install-all-components.bat
。如果你只需要某些组件,并且想节省网络流量和/或磁盘空间,你可以导航到不同的组件文件夹,例如toolchain\cygwin64
,然后点击 install-XXX.bat 脚本,只获取特定的组件。继续阅读入门指南。
手动安装(适用于工具链开发者)
本节介绍如何手动设置Cygwin工具链,同时会指向基于脚本安装仓库中对应的脚本。最终结果应与使用脚本或MSI安装程序相同。
INFO
工具链会不断维护,因此这些说明可能无法涵盖未来所有更改的每个细节。
创建以下 文件夹:C:\PX4、C:\PX4\toolchain 和 C:\PX4\home
从官方Cygwin网站下载 Cygwin安装程序 文件 setup-x86_64.exe
运行下载的安装程序文件
在向导中选择安装到以下文件夹:C:\PX4\toolchain\cygwin64
选择安装默认的Cygwin基础包以及以下附加包的最新可用版本:
- 类别:包名
- 开发:cmake(3.3.2版本不会产生弃用警告,3.6.2版本可以使用,但会有警告)
- 开发:gcc-g++
- 开发:gdb
- 开发:git
- 开发:make
- 开发:ninja
- 开发:patch
- 编辑器:xxd
- 编辑器:nano(除非你是vim高手)
- Python:python2
- Python:python2-pip
- Python:python2-numpy
- Python:python2-jinja2
- Python:python2-pyyaml
- Python:python2-cerberus
- 归档:unzip
- 实用工具:astyle
- 外壳程序:bash-completion
- 网络:wget
INFO
不要选择不在此列表中的尽可能多的包,有些包会冲突并导致构建失败。
:::
INFO
这正是 cygwin64/install-cygwin-px4.bat 脚本所做的事情。
编写或复制以下 批处理脚本:
run-console.bat
和setup-environment.bat
。通过准备好的批处理脚本来启动所有开发工具的原因是,它们会预先配置启动程序,使其使用工具链文件夹内的本地、可移植Cygwin环境。 这是通过始终先调用脚本 setup-environment.bat,然后再调用所需的应用程序(如控制台)来实现的。
脚本 setup-environment.bat 会在本地为工作区根目录
PX4_DIR
、所有二进制文件位置PATH
以及Unix环境的主目录HOME
设置环境变量。通过打开Cygwin工具链控制台(双击 run-console.bat)并执行以下命令,为你的设置添加必要的 Python包:
shpip2 install toml pip2 install pyserial pip2 install pyulog
INFO
这正是 cygwin64/install-cygwin-python-packages.bat 脚本所做的事情。
:::
下载 ARM GCC编译器 的Windows二进制文件压缩包,并将内容解压到文件夹
C:\PX4\toolchain\gcc-arm
。INFO
这正是工具链在 gcc-arm/install-gcc-arm.bat 脚本中所做的事情。
:::
安装JDK:
- 从 Oracle 或 AdoptOpenJDK 下载Java 14。
- 遗憾的是,没有直接包含二进制文件的可移植压缩包,因此你必须进行安装。
- 找到二进制文件,然后将它们移动/复制到 C:\PX4\toolchain\jdk。
- 你可以再次从Windows系统中卸载该套件,我们只需要这些二进制文件用于工具链。
INFO
这正是工具链在 jdk/install-jdk.bat 脚本中所做的事情。
:::
下载 Apache Ant 的Windows二进制文件压缩包,并将内容解压到文件夹
C:\PX4\toolchain\apache-ant
。TIP
确保解压后的内容没有额外的文件夹层级,即不要包含下载压缩包内的最外层文件夹。
:::
::: info
这正是工具链在 [apache-ant/install-apache-ant.bat](https://github.com/MaEtUgR/PX4Toolchain/blob/master/toolchain/apache-ant/install-apache-ant.bat) 脚本中所做的事情。
:::
下载、构建并将 genromfs 添加到路径中:
使用以下命令将源代码克隆到文件夹 C:\PX4\toolchain\genromfs\genromfs-src:
shcd /c/toolchain/genromfs git clone https://github.com/chexum/genromfs.git genromfs-src
使用以下命令进行编译:
shcd genromfs-src make all
将生成的二进制文件 genromfs.exe 复制到上一级文件夹:C:\PX4\toolchain\genromfs
确保所有已安装组件的二进制文件夹都正确列在由 setup-environment.bat 脚本配置的
PATH
变量中。