root@LQ:/home/packages# ./QGroundControl.AppImage /tmp/.mount_QGrounY4TbnX/QGroundControl: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_QGrounY4TbnX/QGroundControl)2.查找解决方案
1)采用该链接的方案下载编译glibc-2.29:linux下编译安装glibc_没有开花的树-CSDN博客
$ wget http://ftp.gnu.org/gnu/glibc/glibc-2.19.tar.gz $ tar -zxf glibc-2.19.tar.gz $ mkdir glibc-build $ cd glibc-build $ ../glibc-2.19/configure --prefix=/usr/lib64/glibc-2.19 $ make $ make install
2)下载编译了glibc-2.29还是不行,继续查找,找到该链接:
wkhtmltopdf: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by wkhtmltopd_maintain 的博客-CSDN博客
使用命令 strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_ 可以查看 /lib/x86_64-linux-gnu/libm.so.6 这个文件支持的glibc的版本。发现当前并不支持 GLIBC_2.29 ,当前的系统是ubuntu 18.04。
root@LQ:/usr/local/glibc-2.29/libio# strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_ GLIBC_2.2.5 GLIBC_2.4 GLIBC_2.15 GLIBC_2.18 GLIBC_2.23 GLIBC_2.24 GLIBC_2.25 GLIBC_2.26 GLIBC_2.27 GLIBC_PRIVATE
继续上外网找,找到如下:How install GLIBC 2.29 or higher in Ubuntu 18.04 | DigitalOcean
至此,我还不知道该怎样更方便的解决,毕竟我不想换系统,记录一下,后续解决了再来编辑。有大佬知道也可以直接告诉我,感谢!
继续查找,终于找到方案了:
importError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found_gcyysh1314的博客-CSDN博客
结合前面的大佬的博客,我在configure时:
$ cd glibc-build $ ../glibc-2.19/configure --prefix=/usr/lib/glibc-2.29
建立软连接
ln -s /usr/lib/glibc-2.29/lib/libm-2.29.so libm.so.6
会报错 ln: failed to create symbolic link ‘libm.so.6’: File exists
此时需要强链接
ln -sf /usr/lib/glibc-2.29/lib/libm-2.29.so libm.so.6
最后,用strings /lib/x86_64-linux-gnu/libm.so.6 |grep GLIBC_2.29命令查看即可:
root@LQ:/home/packages# strings /lib/x86_64-linux-gnu/libm.so.6 |grep GLIBC_2.29 GLIBC_2.29 exp2@@GLIBC_2.29 log2@@GLIBC_2.29 pow@@GLIBC_2.29 log@@GLIBC_2.29 exp@@GLIBC_2.293.安装qt
QGC的运行依赖qt,所以必须先安装qt,我选择了最新稳定版5.15.2。qt的安装教程可以参考这篇博客:Ubuntu18.04安装配置Qt5.15_sz590的专栏-CSDN博客
这是我安装时选择的组件,看个人开发需要:
接下来,重点说一下在安装qt时遇到的问题:
1)qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin xcb in even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: minimal, xcb.
解决方法:①首先检查自己的系统中是否缺少 libxcb-xinerama0,如果缺少就执行这个来安装:
$ sudo apt install libxcb-xinerama0
②如果你已经安装了上述库,还是有问题,在终端执行:
export QT_DEBUG_PLUGINS=1 #然后再安装qt,看下具体报错信息
我的报错信息如下:QFactoryLoader::QFactoryLoader() ignoring "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3" since plugins are disabled in static builds。
网上搜索没有搜到答案,经过思索和查找,想到qt安装时会弹出安装界面,另外有大佬说这是在树莓派上安装常出现的问题,结合wsl并没有图形界面,于是乎我开始去搜索wsl中安装图形界面的教程,搜到了很多不错的,这里放1个比较好的链接:1)WSL2中使用VcXsrv实现xfce4图形界面+声音传输 - 知乎;
在参考这个链接的时候我犯了一些错误,导致折腾了半天,毕竟linux研究的比较少。
正确的配置姿势
# 首先需要查看Windows系统和WSL2通信使用的虚拟网卡地址 $ sudo vim /etc/resolv.conf # nameserver后面的地址就是Windows系统虚拟网卡的地址,记一下,同时需要取消下面两行内容的注释,禁用自动重新生成配置文件,否则重启后这个地址会变 [network] generateResolvConf = false $ vim ~/.bashrc # 在文件最后追加下面内容,地址使用上面查看到的 export DISPLAY=192.168.112.1:0
事实上我的系统中,这个地方我不能像他说的一样直接在resolv.conf中注释这些,我的系统中是这样说的:
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf: # [network] # generateResolvConf = false nameserver 172.24.144.1
如果我注释了,关闭了wsl再打开的时候还是这个样子,因为它会自动生成。所以你得按照它的提示:To stop automatic generation of this file, add the following entry to /etc/wsl.conf。所以我创建了wsl.conf,但是创建完后我没有添加正确的写法,这个地方导致我卡了很久。你要添加的内容就是:
# [network] # generateResolvConf = false
特别注意:我第一次添加的时候把注释去掉了,实际上你不应该注释掉。如果你注释掉了,你重启wsl后,你会发现你的系统中resolv.conf文件没有了,而且你想往里面写东西的时候,没法写!这个时候你需要去把wsl.conf中注释起来,然后再重启wsl就可以看到自动生成了新的resolv.conf。
最终,我在终端启动:startxfce4,运行成功,界面如下:
在使用xfce桌面安装过程,遇到问题后,尝试了通过远程桌面的方式,参考了如下链接:
Win10子系统安装图形化界面的两种方法;WSL2使用xrdp实现图形桌面 - 知乎
不过最后我还是没有成功,报错和这篇博客类似,即便我按照他的方法重启了电脑还是不行:Windows10访问Ubuntu子系统(WSL)的桌面环境_CodeMan-CSDN博客
qt的卸载参考这篇博客:Ubuntu下卸载Qt_Y_Hungry的博客-CSDN博客_ubuntu卸载qt
#命令行方式 sudo apt-get remove qt5-default qtcreator5.遇到的其它问题
1)QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root‘
#在/etc/profile末尾增加两句 export XDG_RUNTIME_DIR=/usr/lib/ export RUNLEVEL=3 source /etc/profile
以上就是整个安装历程,花了我大半天的时间,最终还是搞定了,感谢那么多大佬分享自己的博客,这也是我开始写博客记录分享的原因,另外我尽量不写别人已经写过的,只写自己的和别人虽然写过但是又很重要的点!



