Skip to content

Windows Cygwin开发环境(维护说明)

WARNING

此开发环境由社区提供支持和维护(详见社区支持的开发环境)。 它可能与当前版本的PX4兼容,也可能不兼容。

有关核心开发团队支持的开发环境和工具的信息,请参阅工具链安装

本主题介绍如何构建和扩展已不再支持的基于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脚本来安装该环境。

  1. 确保你已经安装了适用于Windows的Git

  2. 将代码仓库https://github.com/PX4/windows-toolchain克隆到你想要安装工具链的位置。通过打开 Git Bash 并执行以下命令,可以使用默认的位置和命名:

    sh
    cd /c/
    git clone https://github.com/PX4/windows-toolchain PX4
  3. 如果你想安装所有组件,导航到刚克隆的文件夹,然后双击位于 toolchain 文件夹中的脚本 install-all-components.bat。如果你只需要某些组件,并且想节省网络流量和/或磁盘空间,你可以导航到不同的组件文件夹,例如 toolchain\cygwin64,然后点击 install-XXX.bat 脚本,只获取特定的组件。

  4. 继续阅读入门指南

手动安装(适用于工具链开发者)

本节介绍如何手动设置Cygwin工具链,同时会指向基于脚本安装仓库中对应的脚本。最终结果应与使用脚本或MSI安装程序相同。

INFO

工具链会不断维护,因此这些说明可能无法涵盖未来所有更改的每个细节。

  1. 创建以下 文件夹C:\PX4C:\PX4\toolchainC:\PX4\home

  2. 官方Cygwin网站下载 Cygwin安装程序 文件 setup-x86_64.exe

  3. 运行下载的安装程序文件

  4. 在向导中选择安装到以下文件夹:C:\PX4\toolchain\cygwin64

  5. 选择安装默认的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 脚本所做的事情。

  1. 编写或复制以下 批处理脚本run-console.batsetup-environment.bat

    通过准备好的批处理脚本来启动所有开发工具的原因是,它们会预先配置启动程序,使其使用工具链文件夹内的本地、可移植Cygwin环境。 这是通过始终先调用脚本 setup-environment.bat,然后再调用所需的应用程序(如控制台)来实现的。

    脚本 setup-environment.bat 会在本地为工作区根目录 PX4_DIR、所有二进制文件位置 PATH 以及Unix环境的主目录 HOME 设置环境变量。

  2. 通过打开Cygwin工具链控制台(双击 run-console.bat)并执行以下命令,为你的设置添加必要的 Python包

    sh
    pip2 install toml
    pip2 install pyserial
    pip2 install pyulog

    INFO

    这正是 cygwin64/install-cygwin-python-packages.bat 脚本所做的事情。

:::

  1. 下载 ARM GCC编译器 的Windows二进制文件压缩包,并将内容解压到文件夹 C:\PX4\toolchain\gcc-arm

    INFO

    这正是工具链在 gcc-arm/install-gcc-arm.bat 脚本中所做的事情。

:::

  1. 安装JDK:

    • OracleAdoptOpenJDK 下载Java 14。
    • 遗憾的是,没有直接包含二进制文件的可移植压缩包,因此你必须进行安装。
    • 找到二进制文件,然后将它们移动/复制到 C:\PX4\toolchain\jdk
    • 你可以再次从Windows系统中卸载该套件,我们只需要这些二进制文件用于工具链。

    INFO

    这正是工具链在 jdk/install-jdk.bat 脚本中所做的事情。

:::

  1. 下载 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) 脚本中所做的事情。

:::

  1. 下载、构建并将 genromfs 添加到路径中:

    • 使用以下命令将源代码克隆到文件夹 C:\PX4\toolchain\genromfs\genromfs-src

      sh
      cd /c/toolchain/genromfs
      git clone https://github.com/chexum/genromfs.git genromfs-src
    • 使用以下命令进行编译:

      sh
      cd genromfs-src
      make all
    • 将生成的二进制文件 genromfs.exe 复制到上一级文件夹:C:\PX4\toolchain\genromfs

  2. 确保所有已安装组件的二进制文件夹都正确列在由 setup-environment.bat 脚本配置的 PATH 变量中。