第2章:开发环境搭建(Windows)

说实话,搭建开发环境这事儿,看着简单,但坑是真不少。我见过太多人卡在这一步,源码下好了编译不过,折腾一整天心态就崩了。今天我就带你一步步走,把VS2022、Git、ArduPilot和Mission Planner的源码都安排明白。

2.1 安装Visual Studio 2022

为什么选VS2022?因为它是Windows上最稳的IDE,没有之一。Mission Planner的源码是C#写的,VS2022对C#的支持可以说是亲儿子级别的。

下载地址:Visual Studio 2022 Community版(免费,个人开发者够用了)

安装时要注意,别一股脑全勾上。我建议你只选这几个工作负载:

  • .NET桌面开发 —— 必选,Mission Planner就是基于.NET Framework的
  • 使用C++的桌面开发 —— 可选,但建议装,ArduPilot的某些工具链会用到
  • ASP.NET和Web开发 —— 如果你以后想写Web版规划器,可以勾上

我的小技巧:安装路径别改,默认C盘就行。我以前非要装D盘,结果各种权限问题,折腾了两小时。嗯,血的教训。

2.2 安装Git

Git是版本控制的标配,没有它你根本没法跟ArduPilot社区协作。下载地址我就不贴了,直接搜"Git for Windows"就行。

安装过程有几个关键点:

  • 选择默认编辑器:选VS Code或者Notepad++,别选Vim(除非你真的很熟)
  • 调整PATH环境:选"Git from the command line and also from 3rd-party software"
  • 换行符处理:选"Checkout Windows-style, commit Unix-style line endings"

注意:换行符这个选项很重要!ArduPilot的源码是Unix风格换行,如果你选错了,编译时会报一堆莫名其妙的错误。我曾经因为这个折腾了一整个下午。

2.3 克隆ArduPilot源码

好,现在VS2022和Git都装好了。我们开始拉代码。

打开Git Bash(或者CMD),找个你喜欢的目录,比如 D:\Projects,然后执行:

git clone https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule update --init --recursive

这里有个坑:ArduPilot的仓库很大,包含了很多子模块。直接clone可能会很慢,甚至超时。我建议你这么做:

  1. 先clone主仓库(不带子模块)
  2. 再单独拉子模块

具体命令:

git clone --depth 1 https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule init
git submodule update --depth 1

--depth 1 参数只拉取最新版本,不拉历史记录。这样速度快很多,而且我们做二次开发,一般也不需要历史记录。

验证是否成功:进入 ardupilot/libraries 目录,看看有没有 AP_HALAP_Math 这些文件夹。有就说明拉对了。

2.4 克隆Mission Planner源码

Mission Planner的源码在另一个仓库里。注意,不是ArduPilot官方仓库,而是社区维护的。

git clone https://github.com/ArduPilot/MissionPlanner.git

这个仓库比ArduPilot小得多,几秒钟就拉完了。拉完之后,你会看到这些核心目录:

目录/文件 说明
MissionPlanner.csproj 项目文件,双击就能用VS2022打开
ExtLibs/ 第三方库,比如MAVLink、GMap.NET等
GCSViews/ 界面代码,我们二次开发主要改这里
Utilities/ 工具类,比如日志、配置读写等

我的习惯:我会把ArduPilot和Mission Planner放在同一个父目录下,比如 D:\Projects\ardupilotD:\Projects\MissionPlanner。这样方便后续做联合调试。

2.5 编译Mission Planner

源码拉好了,我们来试试能不能编译通过。

  1. 双击 MissionPlanner.csproj,VS2022会自动打开
  2. 在解决方案资源管理器里,右键解决方案,选"还原NuGet包"
  3. F6 或者点"生成" -> "生成解决方案"

第一次编译会比较慢,因为要下载依赖包。如果一切顺利,你应该能看到"生成成功"的提示。

常见问题:

  • NuGet包还原失败:检查网络,或者手动设置NuGet源为 https://api.nuget.org/v3/index.json
  • 缺少.NET Framework版本:Mission Planner需要.NET Framework 4.7.2或更高,去微软官网下载安装
  • 编译报错"MAVLink"相关:可能是子模块没拉全,重新执行 git submodule update --init --recursive

2.6 知识体系总览

说了这么多,你可能有点晕。没关系,我画了张图,帮你理清整个开发环境的结构:

Windows开发环境搭建 - 知识体系 Visual Studio 2022 .NET桌面开发 + C++工具 Git for Windows 版本控制 + 换行符处理 ArduPilot 源码 飞控固件 + 子模块 Mission Planner 源码 地面站 + 界面代码 编译 & 调试 NuGet包 + F5运行 核心逻辑:基础工具 → 源码获取 → 编译调试

你看,整个流程其实就三步:装好VS2022和Git,拉两个仓库的代码,然后编译验证。每一步都有坑,但跟着我上面的步骤走,应该不会出大问题。

最后说一句:环境搭建是磨刀不误砍柴工。我见过太多人急着写代码,结果环境没配好,编译报错就放弃了。花一个小时把环境搭稳,后面能省你十个小时的排查时间。


专注资料整理