4、QGC地面站源码编译:克隆QGC源码,配置Qt5.15环境,解决常见编译错误,编译运行QGC

好,到了真正动手的环节了。前面几章我们把概念和工具链捋了一遍,现在要开始跟代码打交道。说实话,QGC的编译环境配置,是很多初学者第一个卡住的地方。我当年第一次搞的时候,光Qt版本就折腾了两天。嗯,咱们今天争取一次搞定。

4.1 克隆QGC源码

先得把代码拉下来。QGC的官方仓库在GitHub上,地址是:https://github.com/mavlink/qgroundcontrol.git。

我个人习惯用SSH方式克隆,省得每次输密码。如果你还没配SSH Key,用HTTPS也行。打开终端,找个你喜欢的目录,执行:

git clone https://github.com/mavlink/qgroundcontrol.git
cd qgroundcontrol

这里有个小细节——QGC的代码量不小,大概有几百兆。网速慢的话,建议用 --depth=1 参数只拉最新版本:

git clone --depth=1 https://github.com/mavlink/qgroundcontrol.git
我的习惯:克隆完后,先切到稳定分支。QGC的master分支更新很快,有时候会有未完全测试的代码。我一般用 git checkout Stable 或者 git tag -l 看看最新的稳定版标签。

4.2 配置Qt 5.15环境

QGC官方推荐用Qt 5.15.x LTS版本。为什么不是Qt 6?因为QGC对Qt 6的支持还在完善中,很多插件和模块在Qt 6下会有兼容问题。说白了,用5.15最稳。

安装步骤分三步走:

  1. 下载Qt安装器:去Qt官网(qt.io)下载在线安装器。注意,Qt现在要求注册账号,免费版够用。
  2. 选择组件:安装时,一定要勾选 Qt 5.15.2 下的 MSVC 2019 64-bit(Windows)或 Desktop gcc 64-bit(Linux/macOS)。另外,Qt Charts 和 Qt Serial Port 这两个模块必须选上,不然编译会报错。
  3. 配置编译器:安装完后,打开Qt Creator,在「工具 → 选项 → Kits」里确认编译器路径正确。Windows用户记得装好MSVC 2019或2022的Build Tools。
我曾经踩过的坑:Qt安装器默认不勾选Qt Charts。我第一次编译时,卡在一个叫 qcustomplot 的报错上,查了半天才发现是图表模块没装。所以,安装时多花两分钟检查组件列表,能省后面两小时。

4.3 解决常见编译错误

编译QGC,说白了就是打开 qgroundcontrol.pro 文件,然后点「构建」。但现实往往没那么顺利。我把最常见的几个错误和解决办法列出来:

错误信息 原因 解决办法
Qt Charts module not found 未安装Qt Charts模块 重新运行Qt安装器,勾选Qt Charts
GL/gl.h: No such file or directory 缺少OpenGL开发库 Linux: sudo apt install libgl1-mesa-dev
Windows: 安装MSVC时勾选Windows SDK
undefined reference to `vtable for ...` Q_OBJECT宏未正确识别 执行 qmake 重新生成Makefile,然后清理重建
fatal error: 'Esri/...' file not found ArcGIS地图插件编译失败 在 .pro 文件中注释掉 DEFINES += QGC_ENABLE_ARCGIS

你想想看,这些错误其实都有规律。大部分是环境依赖没配全。我建议第一次编译时,用 qmake 加 make 的命令行方式,错误信息更直观:

mkdir build
cd build
qmake ../qgroundcontrol.pro
make -j4

核心要点:如果编译过程中出现大量红色错误,别慌。先看第一个错误,往往后面的都是连锁反应。我一般会先 make clean,然后重新 qmake,再 make。八成问题能解决。

4.4 编译运行QGC

编译成功后,你会得到一个可执行文件。Windows下是 qgroundcontrol.exe,Linux下是 qgroundcontrol。直接双击运行,或者从终端启动:

./qgroundcontrol

第一次启动时,QGC会创建配置文件目录(一般在 ~/.config/QGroundControl.org)。你可能会看到一些警告日志,比如缺少某些地图缓存目录,这些不影响使用。

为了验证编译是否完全正确,我建议做三个快速测试:

  1. 界面检查:主窗口是否正常显示,菜单栏、工具栏、状态栏是否完整。
  2. 模拟连接:点击右上角的「Q」图标,选择「模拟模式」。QGC会启动一个虚拟无人机,看看状态数据是否在刷新。
  3. 参数加载:进入「参数」页面,检查是否有默认参数列表。如果参数为空,说明MAVLink通信模块有问题。
我的调试技巧:如果模拟模式连不上,八成是串口或UDP端口被占用。打开终端,用 netstat -an | grep 14550 看看端口状态。我遇到过好几次,是之前残留的QGC进程没关干净。

4.5 本章知识体系

下面这张图,把整个编译流程串起来了。你对照着看,心里就有谱了:

QGC源码编译流程 克隆QGC源码 配置Qt 5.15环境 解决常见编译错误 编译运行QGC 验证测试(模拟模式) 常见问题 • Qt Charts未安装 • OpenGL库缺失 • 端口被占用 验证要点 • 界面完整显示 • 模拟连接成功 • 参数正常加载

嗯,到这一步,你的QGC地面站就已经从源码跑起来了。后面几章,我们会在这个环境里做更深入的调试和二次开发。今天先到这里,你动手试试看,有问题随时翻回来看这张流程图。