# Windows 开发环境
以下说明介绍了如何在 Windows 10 上设置(基于 Cygwin 的)PX4 开发环境。该环境可用于为以下设备构建 PX4:
- Pixhawk 和其他基于 NuttX 的硬件
- jMAVSim 模拟
警告
该工具链的当前版本不能与主代码线一起使用(但可以与稳定版本一起使用)。该工具 基于 Windows WSL2 的开发环境 是强烈推荐的 Windows 11(唯一)替代方案,而且很可能在不久的将来成为受支持的 Windows 解决方案。
TIP
PX4 开发团队支持这种设置。要构建其他目标,您需要使用 不同的操作系统 (或一个 不支持的 Windows 开发环境).
# 安装说明
- 从以下网址下载最新版本的即用型 MSI 安装程序: Github 发布 (打开新窗口) 或 亚马逊 S3 (打开新窗口) (快速下载)。
- 运行它,选择所需的安装位置,等待安装:
- 在安装结束时勾选复选框,以便 克隆 PX4 资源库,使用 jMAVSim 构建并运行仿真 (这样可以简化流程,让您轻松上手)。
备注
如果您错过了这一步,您需要 手动克隆 PX4-Autopilot 软件仓库.
警告
在撰写本文时,安装程序缺少一些依赖项(目前还无法重建以添加这些依赖项,请参阅 PX4-windows-toolchain#31 (打开新窗口)).
自己添加这些内容:
- 浏览到工具链安装目录(默认为 C:\PX4\)
- 运行 run-console.bat (双击)启动类似 linux 的 Cygwin bash 控制台
- 在控制台中输入以下命令
pip3 install --user kconfiglib jsonschema future
# 入门
工具链使用专门配置的控制台窗口(通过运行 run-console.bat 脚本),从中可以调用正常的 PX4 构建命令:
浏览到工具链安装目录(默认为 C:\PX4\)
运行 run-console.bat (双击)启动类似 linux 的 Cygwin bash 控制台(必须使用该控制台才能构建 PX4)。
在控制台内克隆 PX4 PX4-Autopilot 资源库:
备注
如果您勾选了安装程序选项以 克隆 PX4 资源库,使用 jMAVSim 构建并运行仿真.克隆只需进行一次!
# 克隆 PX4-Autopilot 资源库到主文件夹 & 并行加载子模块 Git clone --recursive -j8 https://github.com/PX4/PX4-Autopilot.git
现在您可以使用控制台/PX4-Autopilot 资源库来构建 PX4。
例如,运行 JMAVSim:
# 导航至 PX4-Autopilot 软件仓库 CD 固件 # 使用 jMAVSim 建立并运行 SITL 仿真,以测试设置 生产 px4_sitl jmavsim
控制台随后将显示
# 下一步工作
完成命令行工具链的设置后:
- 安装 QGroundControl 日常构建 (打开新窗口)
- 继续前往 建造说明.
# 故障排除
# 文件监控工具与工具链速度
杀毒软件和其他后台文件监控工具会大大降低工具链的安装和 PX4 的构建速度。
您可能希望在构建过程中暂时停止它们(风险自担)。
# Windows & Git 特殊案例
# Windows CR+LF 与 Unix LF 行结束符对比
我们建议你在使用该工具链的每个版本库中强制使用 Unix 风格的 LF 结尾(并使用能在保存更改时保留它们的编辑器,如 Eclipse 或 VS Code)。编译源文件时也可以使用本地检查出的 CR+LF 结尾,但在 Cygwin 中有些情况(如执行 shell 脚本)需要使用 Unix 行结束符(否则会出现以下错误 $'\r':Command not found.
).幸运的是,只要在软件源的根目录下执行这两条命令,git 就能帮你做到这一点:
git config core.autocrlf false git config core.eol lf
如果您在多个软件源上使用该工具链,也可以为您的机器全局设置这两项配置:
git config --global ...
不建议这样做,因为这可能会影响 Windows 机器上其他(不相关的)git 的使用。
# Unix 权限执行位
在 Unix 下,每个文件的权限中都有一个标志,告诉操作系统是否允许执行该文件。 Git 尽管 Windows NTFS 文件系统不使用该位)。这通常会导致 Git 发现权限中的"假阳性"差异。由此产生的差异可能如下所示:
diff --git ... 旧模式 100644 新模式 100755
我们建议在 Windows 上全面禁用权限检查,以避免出现该问题:
# 全面禁用机器的执行位检查
Git config --global core.fileMode 错误
对于因本地配置而出现此问题的现有版本库,还可采用
# 移除该版本库的本地选项,以应用全局选项
Git config --unset core.filemode
# 删除所有子模块的本地选项
Git 子模组 foreach --recursive Git config --unset core.filemode