./QGroundControl-x86_64.AppImage double click /tmp/.mount_QGrounFFODlM/usr/bin/QGroundControl: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by /tmp/.mount_QGrounFFODlM/usr/bin/QGroundControl) /tmp/.mount_QGrounFFODlM/usr/bin/QGroundControl: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /tmp/.mount_QGrounFFODlM/usr/bin/QGroundControl) /tmp/.mount_QGrounFFODlM/usr/bin/QGroundControl: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /tmp/.mount_QGrounFFODlM/usr/bin/QGroundControl)
时间: 2025-07-22 09:47:43 浏览: 11
<think>我们遇到了运行QGroundControl的AppImage时出现的GLIBC和GLIBCXX版本过低的问题。这通常是因为当前系统的glibc库版本低于AppImage构建时使用的版本。以下是解决步骤:
1. 更新系统(特别是Ubuntu/Debian):
sudo apt update && sudo apt upgrade
2. 如果更新后仍无法解决,可能是系统仓库中的glibc版本不够新。可以考虑手动升级glibc,但需谨慎,因为glibc是核心库,操作不当可能导致系统不稳定。
3. 另一种方法是使用较旧版本的QGroundControl AppImage,该版本构建时使用了较旧的glibc。
4. 或者,从源码构建QGroundControl,使其使用当前系统的库。
5. 使用容器技术(如Docker)运行新版本的QGroundControl。
具体步骤:
方法1:更新系统(推荐先尝试)
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade # 处理依赖关系,升级更多包
方法2:安装更新的libstdc++(如果可用)
# 对于Ubuntu,可以尝试添加较新的gcc工具链PPA(如Ubuntu Toolchain PPA)来获取更新的libstdc++
sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
sudo apt update
sudo apt install libstdc++6 # 或者安装更新的g++版本,如g++-11
方法3:下载旧版QGroundControl
访问QGroundControl的发布页面:https://github.com/mavlink/qgroundcontrol/releases
寻找标记为“legacy”或版本号较低的发布,这些通常使用较旧的glibc。
方法4:从源码构建(适合开发者)
参考官方构建文档:https://dev.qgroundcontrol.com/master/en/getting_started/
方法5:使用Docker(示例)
# 使用预构建的Docker镜像(如果有)
docker run -it --rm \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=$DISPLAY \
--device /dev/dri \
--group-add video \
--name qgc \
qgroundcontrol/qgroundcontrol:latest
注意:如果选择手动升级glibc,请确保你清楚自己在做什么,因为错误的升级可能导致系统无法启动。
如果以上方法都不行,考虑升级整个操作系统到更新的版本。
根据错误信息,我们需要GLIBC_2.35和GLIBCXX_3.4.29,这些在较新的发行版中才提供。例如,Ubuntu 22.04提供了GLIBC_2.35,而Ubuntu 20.04则没有。
因此,如果你使用的是Ubuntu 20.04,升级到Ubuntu 22.04可以解决此问题。
但是,请注意,升级操作系统是较大的操作,请备份重要数据。
现在,我们提出相关问题。</think>### 解决 QGroundControl AppImage 运行时 GLIBC 版本缺失错误
#### 错误原因分析:
1. **系统库过旧**:当前系统的 GLIBC(GNU C 库)版本低于 QGC 编译要求的 2.35
2. **C++ 标准库不匹配**:缺少 GLIBCXX_3.4.29 和 CXXABI_1.3.13 版本
3. **发行版版本过低**:常见于 Ubuntu 20.04 或更旧系统(Ubuntu 22.04+ 才支持 GLIBC_2.35)
#### 解决方案:
#### 1. 升级系统库(推荐)
```bash
# Ubuntu/Debian 系统
sudo apt update
sudo apt install libc6 libstdc++6
# 检查更新后的版本
ldd --version | grep -i glibc
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
```
#### 2. 使用兼容旧系统的 AppImage 版本
```bash
# 下载 Legacy 版本(支持旧 GLIBC)
wget https://github.com/mavlink/qgroundcontrol/releases/download/v4.2.8/QGroundControl-legacy-x86_64.AppImage
# 添加执行权限
chmod +x QGroundControl-legacy-x86_64.AppImage
# 运行
./QGroundControl-legacy-x86_64.AppImage
```
#### 3. 容器化运行(不修改系统)
```bash
# 使用 Docker 运行最新版
docker run -it --rm \
--device /dev/dri \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=$DISPLAY \
--group-add video \
--name qgc \
qgroundcontrol/qgroundcontrol:latest
```
#### 4. 源码编译(适配当前系统)
```bash
# 克隆源码
git clone --recursive https://github.com/mavlink/qgroundcontrol.git
cd qgroundcontrol
# 配置编译环境
mkdir build && cd build
cmake ..
# 编译(自动适配当前系统库)
make -j$(nproc)
# 运行
./staging/QGroundControl
```
#### 5. 系统升级(终极方案)
```bash
# Ubuntu 升级到 22.04+
sudo do-release-upgrade
# 或全新安装最新发行版
```
#### 验证修复:
```bash
# 检查 GLIBC 版本
ldd --version
# 应显示类似: ldd (Ubuntu GLIBC 2.35-0ubuntu3) 2.35
# 检查 GLIBCXX
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
# 应包含 GLIBCXX_3.4.29
```
阅读全文
相关推荐
















