当前位置: 首页 > news >正文

告别编译报错!Ubuntu 20.04下Qt 6.6.1 + QGroundControl 4.3环境搭建全记录(含Video Streaming依赖安装)

告别编译报错!Ubuntu 20.04下Qt 6.6.1 + QGroundControl 4.3环境搭建全记录(含Video Streaming依赖安装)

无人机开发者在搭建QGroundControl开发环境时,最头疼的莫过于各种编译报错。本文将手把手带你解决Ubuntu 20.04下Qt 6.6.1与QGroundControl 4.3环境搭建中的常见问题,特别是Video Streaming依赖缺失这个"拦路虎"。

1. 环境准备与Qt安装

在开始之前,确保你的Ubuntu 20.04系统已经更新到最新状态:

sudo apt update && sudo apt upgrade -y

Qt 6.6.1的安装过程有几个关键点需要注意:

  1. 下载正确的安装包:从Qt官网获取qt-unified-linux-x64-online.run安装程序
  2. 赋予执行权限并运行安装程序:
    chmod +x qt-unified-linux-x64-online.run sudo ./qt-unified-linux-x64-online.run

提示:安装过程中可以取消勾选匿名数据收集选项

安装组件选择是Qt配置中最容易出错的部分。很多开发者在这里漏选必要模块,导致后续编译失败。以下是必须勾选的组件:

分类必选组件
Qt 6.6.1Desktop gcc 64-bit
Qt 5 Compatibility Module
Qt Shader Tools
Qt Quick 3D
Additional LibrariesQt Charts
Qt Connectivity
Qt Location (TP)
Qt Multimedia
Qt Positioning
Qt Serial Port
Qt Speech

2. 获取QGroundControl源码

使用以下命令克隆QGroundControl仓库并更新子模块:

git clone --recursive -j8 https://github.com/mavlink/qgroundcontrol.git cd qgroundcontrol git submodule update --recursive

注意:--recursive参数确保所有子模块都被正确克隆,这是很多编译错误的根源

3. 解决Video Streaming依赖问题

Video Streaming依赖是QGroundControl编译过程中最常见的报错来源。以下是完整的解决方案:

# 安装gstreamer相关包 list=$(apt-cache --names-only search ^gstreamer1.0-* | awk '{ print $1 }' | sed -e /-doc/d | grep -v gstreamer1.0-hybris) sudo apt-get install $list # 安装基础开发包 sudo apt-get install libgstreamer-plugins-base1.0-dev sudo apt-get install libgstreamer-plugins-bad1.0-dev

如果遇到依赖冲突,可以尝试以下步骤:

  1. 先单独安装基础开发包
  2. 再尝试安装完整的gstreamer组件
  3. 使用apt --fix-broken install解决依赖问题

4. Qt Creator项目配置

打开Qt Creator后,按照以下步骤配置项目:

  1. 通过"打开项目"选择qgroundcontrol.pro文件
  2. 在"Configure Project"步骤中,选择"Desktop Qt 6.6.1 GCC 64bit"作为构建套件
  3. 点击左下角的构建按钮(小锤子图标)
  4. 构建完成后点击运行按钮

常见配置错误包括:

  • 选择了错误的Qt版本(如Qt 5.x而非6.6.1)
  • 漏选了必要的Qt模块(如Qt Location)
  • 构建目录包含空格或特殊字符

5. 后期模块管理与问题排查

如果在后续开发中发现缺少某些Qt模块,可以通过Qt维护工具添加:

cd /opt/Qt sudo ./MaintenanceTool

在维护工具中:

  1. 选择"Add or remove components"
  2. 勾选需要添加的模块
  3. 完成安装

编译报错排查流程:

  1. 阅读错误信息,确定缺失的组件或依赖
  2. 检查Qt安装中是否包含相关模块
  3. 确认系统依赖是否安装完整
  4. 清理项目后重新构建

6. 性能优化与开发技巧

为了提高开发效率,可以考虑以下优化措施:

  • 使用ccache加速编译:

    sudo apt install ccache export PATH="/usr/lib/ccache:$PATH"
  • 配置Qt Creator使用多核编译: 在"Projects" → "Build & Run" → "Build Steps"中,设置make -j$(nproc)

  • 定期清理构建目录以避免奇怪的编译错误

对于频繁切换分支的开发场景,建议:

git clean -xdf # 清理所有未跟踪文件 git submodule update --init --recursive # 确保子模块同步

7. 常见问题解决方案

以下是开发者经常遇到的几个问题及其解决方法:

  1. Qt Location模块缺失错误

    • 通过Qt维护工具安装Qt Location (TP)模块
    • 重新运行qmake并构建项目
  2. 多媒体相关编译错误

    • 确保安装了所有gstreamer开发包
    • 检查Qt Multimedia模块是否已安装
  3. 子模块同步问题

    • 删除整个仓库重新克隆
    • 或者手动更新问题子模块:
      cd src/<问题子模块路径> git fetch && git checkout <正确版本>
  4. 界面显示异常

    • 检查是否正确安装了Qt Quick 3D模块
    • 确保显卡驱动正常工作

在实际项目中,我发现最耗时的往往不是技术问题,而是环境配置中的各种小细节。比如有一次花了整整一天时间排查一个编译错误,最后发现只是因为构建目录路径中包含了一个空格。

http://www.jsqmd.com/news/735903/

相关文章:

  • 从60k+张手部图片到高精度模型:我是如何用YOLOv5和Labelme打造专属手部检测数据集的
  • AI绘画技能包实战:从Stable Diffusion到女娲协作式创作
  • 【MCP 2026多租户隔离终极指南】:20年架构师亲授3层资源隔离黄金模型(CPU/内存/网络零干扰)
  • 私有化容器镜像构建平台PubGrade:架构设计与部署实践
  • QMCDecode:三分钟解锁你的QQ音乐收藏,让加密音频重获自由
  • Linux无线网络深度解析:rtw89驱动如何解决Realtek 885x系列WiFi兼容性问题
  • 多模态大语言模型在图像记忆性优化中的应用
  • 西安架子床回收TOP5品牌盘点 各场景适配全解析 - 优质品牌商家
  • Switch破解新体验:大气层系统完整配置指南与功能详解
  • 别再为NFS随机端口头疼了!一份适用于UOS/麒麟/openEuler的端口固定与安全配置清单
  • ICARUS Elkhart Lake Pico-ITX开发板解析与边缘计算应用
  • Novoline插件:提升Claude Code编码效率的模块化技能框架
  • NTU VIRAL数据集实战探秘:多模态感知融合的完整技术栈解析
  • 从‘m_’到‘p_’:深入理解UVM Sequence与Sequencer的通信机制与最佳实践
  • claw-relay:轻量级数据中继器的架构解析与实战部署
  • ARM CCI-400寄存器编程与缓存一致性优化指南
  • WindowResizer终极指南:如何免费强制调整任意窗口尺寸的完整教程
  • 边缘计算设备AI模型部署中的JMMMU内存管理问题解析
  • 10分钟精通RePKG:解锁Wallpaper Engine资源宝库的终极密钥
  • 开源数据查询工具pizzaql:元数据驱动与语义层构建实战指南
  • 别再被示波器骗了!手把手教你用20MHz带宽限制精准测电源纹波(附接地技巧)
  • 基于MCP协议与离线语音识别的AI助手状态感知服务器实践
  • 【Docker 27资源监控黄金法则】:27个实时告警配置陷阱+3类CPU/内存突增秒级捕获方案
  • 别再手动建模了!用Trimble TX5扫描+RealWorks配准,30小时搞定泳池BIM模型
  • 强化学习在视频时序定位中的创新应用
  • 无线网络规划不求人:用Wi-Fi Scanner 22.08做一次专业的办公室AP部署前勘测
  • Windows右键菜单集成Cursor编辑器:注册表配置与自动化部署指南
  • 2026年4月诚信的高速护拦品牌口碑推荐,标志杆/标牌/波形护栏/高速护拦,高速护拦实力厂家哪个好 - 品牌推荐师
  • NVIDIA Spectrum-X:AI优化的网络平台技术解析
  • Python 爬虫高级实战:HTTPS 证书忽略与代理抓包配置