2. 开发环境搭建:Qt Creator安装、CMake配置、编译器选择、源码下载与编译

说实话,QGC 的二次开发环境搭建,是很多新手第一个卡住的地方。我见过不少朋友,代码逻辑都理清了,结果卡在编译上,一卡就是一整天。其实说白了,这套环境并不复杂,但有几个细节确实容易踩坑。今天我就把这几步拆开揉碎了讲清楚。

2.1 工具链概览

在动手之前,我们先搞清楚需要哪些东西。QGC 是一个基于 Qt 的 C++ 项目,所以核心工具链就三样:Qt Creator(IDE)、CMake(构建系统)、编译器(把代码变成可执行文件)。

我习惯把这三者的关系比作一个工厂流水线:

  • Qt Creator 是车间主任,负责调度和管理
  • CMake 是工艺图纸,告诉机器怎么组装
  • 编译器 是机床,真正干活的那个

这三样东西版本要匹配,否则就会出各种奇怪的问题。嗯,这里要特别注意。

核心原则:QGC 官方推荐的 Qt 版本是 5.15.x,CMake 最低 3.16,编译器建议用 GCC 9+(Linux)或 MSVC 2019(Windows)。别问我为什么不用 Qt 6,目前 QGC 对 Qt 6 的支持还在实验阶段,我建议你暂时别碰。

2.2 Qt Creator 安装

Qt Creator 的安装其实很简单,但有个坑——千万别只装 IDE。很多人下载了 Qt Creator 本体,结果发现编译不了,因为缺少 Qt 库和工具链。

正确的做法是:

  1. 去 Qt 官网下载 Qt Online Installer
  2. 安装时选择 Qt 5.15.2(LTS 版本,最稳)
  3. 在组件选择页面,务必勾选:
    • MSVC 2019 64-bit(Windows 用户)
    • MinGW 8.1.0 64-bit(备选)
    • Qt Charts(QGC 依赖这个)
    • Qt Location(地图相关)
    • Qt WebEngine(内置浏览器)

我曾经有一次偷懒没勾 Qt Charts,结果编译到一半报错说找不到 QChartView。当时我还以为是代码问题,折腾了半小时才发现是组件没装全。所以,安装时多花两分钟勾选,后面能省两小时。

2.3 CMake 配置

QGC 从 4.0 版本开始全面转向 CMake 构建系统。你可能会问:为什么不用 qmake?我个人觉得,CMake 在跨平台和第三方库管理上确实更灵活。

配置 CMake 时,有几个关键变量需要设置:

CMake 变量 说明 推荐值
CMAKE_PREFIX_PATH Qt 安装路径 C:/Qt/5.15.2/msvc2019_64
CMAKE_BUILD_TYPE 构建类型 Debug(开发用)
QT_DIR Qt 配置目录 自动检测,一般不用手动设

在 Qt Creator 中打开 CMakeLists.txt 后,它会自动检测 CMake 版本。如果提示版本过低,去 cmake.org 下载最新版就行。我个人习惯用 CMake 3.20+,兼容性最好。

2.4 编译器选择

编译器这块,不同平台差别很大。我按平台分别说一下:

Windows

  • 首选:MSVC 2019 64-bit。这是 Visual Studio 的编译器,性能好,调试方便。
  • 备选:MinGW 8.1.0。如果你不想装 Visual Studio,可以用这个。但注意,MinGW 编译出来的程序在某些 API 调用上可能有点小问题。

Linux

  • GCC 9+。Ubuntu 20.04 默认就是 GCC 9,直接 sudo apt install build-essential 就行。
  • Clang 也可以,但我没怎么用过,不做推荐。

macOS

  • Clang(Xcode 自带)。macOS 上别折腾 GCC,用系统自带的 Clang 最省心。

小技巧:在 Qt Creator 的「Kits」选项卡里,可以同时配置多个编译器。我一般会配一个 MSVC 用于正式编译,再配一个 MinGW 用于快速测试。切换起来很方便。

2.5 源码下载与编译

源码下载,我建议直接从 GitHub 克隆。别去下载 zip 包,因为后续更新不方便。

git clone --recursive https://github.com/mavlink/qgroundcontrol.git
cd qgroundcontrol
git checkout Stable_4.2  # 选一个稳定分支

注意 --recursive 参数,它会同时拉取所有子模块。QGC 依赖很多第三方库,比如 MAVSDK、libcurl 等,这些都在子模块里。如果忘了加这个参数,编译时会报一堆找不到头文件的错误。

克隆完成后,用 Qt Creator 打开项目根目录的 CMakeLists.txt。它会自动加载项目结构,这个过程可能需要几分钟,因为 CMake 要解析所有依赖。

编译时,我建议先选 Debug 模式。虽然 Release 模式运行更快,但 Debug 模式下你能看到完整的调试信息,对二次开发来说太重要了。

第一次编译时间:大概 20-40 分钟,取决于你的机器配置。别着急,去泡杯咖啡。后续增量编译就快多了,一般 1-3 分钟。

2.6 常见编译错误与解决

编译过程中难免遇到问题。我把最常见的几个列出来:

错误信息 原因 解决方法
Could not find Qt5Charts 未安装 Qt Charts 组件 重新运行安装程序,勾选 Qt Charts
fatal error: mavlink/v2.0/... 子模块未初始化 执行 git submodule update --init --recursive
CMAKE_CXX_COMPILER not set 未选择编译器 在 Qt Creator 的 Kits 中指定编译器
LNK1104: cannot open file 'qtmaind.lib' Qt 库路径未正确配置 检查 CMAKE_PREFIX_PATH 是否指向正确的 Qt 目录

嗯,这里要特别说一下子模块的问题。我曾经有一次拉完代码直接编译,结果报了一堆 MAVLink 相关的错误。当时我还以为是代码有问题,后来才发现是忘了 --recursive。所以,克隆的时候一定要加上这个参数,或者克隆后手动执行 git submodule update。

2.7 环境验证

编译成功后,你会得到一个可执行文件。在 Windows 上是 qgroundcontrol.exe,在 Linux/macOS 上是 qgroundcontrol。双击运行,如果能正常启动并看到主界面,说明环境搭建成功了。

我建议你做一个简单的验证:打开「设置」→「模拟连接」,连接到一个虚拟无人机。如果能正常显示遥测数据,那恭喜你,开发环境已经完全就绪了。

QGC 二次开发环境搭建流程 1. 工具链概览 2. Qt Creator 安装 3. CMake 配置 4. 编译器选择 5. 源码下载 6. 编译运行 7. 环境验证 提示:每一步都有对应的避坑指南,建议按顺序执行,不要跳步 编译器选择错误是新手最常见的坑,Windows 用户优先用 MSVC 2019

2.8 小结

开发环境搭建这件事,说白了就是一次性的体力活。只要按照上面的步骤来,基本不会出大问题。我个人觉得,最关键的还是两点:Qt 组件要装全,子模块要拉完整。这两点做到了,后面的编译就是顺理成章的事。