news 2026/4/30 0:35:15

Ubuntu 20.04上PX4 v1.14.0编译踩坑全记录:从CMake版本到Qt库缺失的保姆级修复

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu 20.04上PX4 v1.14.0编译踩坑全记录:从CMake版本到Qt库缺失的保姆级修复

Ubuntu 20.04下PX4 v1.14.0编译实战:从环境配置到疑难解析

当你在Ubuntu 20.04上尝试编译PX4 v1.14.0时,可能会遇到一系列令人头疼的问题。这不是一个理想化的教程,而是一个真实的排错记录,记录了从环境准备到最终编译成功的完整过程。无论你是无人机开发者还是嵌入式系统爱好者,这些经验都能帮你节省大量时间。

1. 环境准备与基础配置

在开始PX4编译之前,确保你的Ubuntu 20.04系统已经安装了必要的依赖。PX4官方文档提供了基础安装指南,但实际情况往往更加复杂。

首先,更新系统并安装基础工具:

sudo apt update && sudo apt upgrade -y sudo apt install git zip qtcreator cmake build-essential ninja-build -y

接下来,安装PX4特有的依赖项:

sudo apt install python3-pip python3-dev python3-wheel -y pip3 install --user kconfiglib future jinja2 packaging numpy empy toml pyros-genmsg

特别注意:Ubuntu 20.04默认的CMake版本(3.16.3)可能无法满足PX4 v1.14.0的要求。我们建议安装更新的CMake版本,但不要卸载系统自带的CMake,以免影响其他依赖CMake的软件。

wget https://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.0-linux-x86_64.tar.gz tar -xzf cmake-3.22.0-linux-x86_64.tar.gz sudo mv cmake-3.22.0-linux-x86_64 /opt/cmake-3.22.0 sudo ln -s /opt/cmake-3.22.0/bin/cmake /usr/local/bin/cmake

验证CMake版本:

cmake --version # 应该显示3.22.0或更高版本

2. 获取PX4源代码与子模块管理

PX4的源代码管理采用Git子模块方式,这在实际操作中可能会带来一些网络相关的问题。

git clone --recursive https://github.com/PX4/PX4-Autopilot.git --branch v1.14.0 cd PX4-Autopilot

如果子模块更新失败(这在网络不稳定时很常见),可以尝试以下方法:

make submodulesclean git submodule sync --recursive git submodule update --init --recursive

常见问题:子模块更新时可能会卡在Micro-CDR等仓库上。这是由于GitHub连接不稳定导致的。解决方法包括:

  • 多次重试上述命令
  • 使用SSH协议而非HTTPS
  • 配置Git使用更稳定的网络库:
git config --global http.sslBackend openssl

3. 编译过程中的典型错误与解决方案

3.1 Protobuf版本冲突

尽管Ubuntu 20.04默认安装的Protobuf 3.6.1理论上应该兼容,但实际编译中仍可能出现问题:

Gazebo SITL : fatal error: google/protobuf/port_def.inc: No such file or directory

解决方案:

  1. 确认已安装的Protobuf版本:
apt list --installed | grep protobuf
  1. 如果确实是3.6.1版本但仍报错,尝试重新安装开发包:
sudo apt install libprotobuf-dev protobuf-compiler -y

3.2 Qt库缺失问题

这是最常见的问题之一,错误信息通常如下:

The imported target "Qt5::Gui" references the file "/usr/lib/x86_64-linux-gnu/libEGL.so" but this file does not exist.

解决方法是为缺失的库创建符号链接:

sudo ln -s /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so

如果仍然存在问题,可能需要安装额外的Qt库:

sudo apt install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools -y

3.3 网络相关编译失败

在子模块编译阶段,可能会遇到网络连接问题:

fatal: 无法访问 'https://github.com/eProsima/Micro-CDR.git/': GnuTLS recv error (-110): The TLS connection was non-properly terminated.

解决方案:

  1. 尝试多次运行编译命令
  2. 配置Git使用更稳定的网络后端:
git config --global http.sslBackend openssl
  1. 或者直接手动克隆问题子模块:
cd build/px4_sitl_default/src/modules/uxrce_dds_client/src/ git clone https://github.com/eProsima/Micro-CDR.git cd - make px4_sitl gazebo-classic

4. 性能优化与后续调试

成功编译后,你可能会发现Gazebo运行缓慢(如只有6帧)。这通常与硬件加速和显示驱动配置有关。

首先,确保你的系统正在使用硬件加速:

glxinfo | grep "OpenGL renderer"

如果显示的是软件渲染器(如LLVMpipe),则需要安装正确的显卡驱动。

对于NVIDIA显卡:

sudo apt install nvidia-driver-470 -y

对于Intel集成显卡:

sudo apt install mesa-utils libgl1-mesa-dri -y

此外,可以调整Gazebo的渲染设置以提高性能:

  1. 打开Gazebo
  2. 点击顶部菜单栏的"Edit" > "Preferences"
  3. 在"Rendering"选项卡中:
    • 降低"Quality Level"
    • 关闭"Shadows"
    • 减少"Physics update rate"

如果问题依旧,可以尝试使用轻量级桌面环境或通过SSH远程运行Gazebo。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 0:34:19

10分钟精通:foobar2000开源歌词插件完整配置指南

10分钟精通:foobar2000开源歌词插件完整配置指南 【免费下载链接】foo_openlyrics An open-source lyric display panel for foobar2000 项目地址: https://gitcode.com/gh_mirrors/fo/foo_openlyrics 还在为音乐播放器找不到合适的歌词插件而烦恼吗&#xf…

作者头像 李华
网站建设 2026/4/30 0:30:13

一张图看懂德萨格定理:用交比证明三点共线的‘几何魔术’

德萨格定理的几何魔术:用交比破解三点共线之谜 想象你手中握着一支铅笔,在纸上随意画下两个三角形。它们看起来毫无关联,但当你用直线连接它们的对应顶点时,三条线竟然神奇地交汇于同一点。更令人惊讶的是,当你延长这两…

作者头像 李华
网站建设 2026/4/30 0:30:13

AI应用的成本控制工程2026:从Token账单到ROI优化的完整策略

成本不控制,AI项目都是在"烧VC的钱" 2026年,很多公司的AI应用已经跑通了技术验证,但商业化落地时撞上了一堵墙:**成本。**一个日活10万用户的AI对话产品,如果每次对话平均消耗2000个token(gpt-4o…

作者头像 李华
网站建设 2026/4/30 0:16:08

TVA在新能源汽车制造与检测中的实践与创新(7)

重磅预告:本专栏将独家连载新书《AI视觉技术:从入门到进阶》精华内容。本书是《AI视觉技术:从进阶到专家》的权威前导篇,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan师从美国三院院士、“AI教母”…

作者头像 李华