ubuntu20遇到缺少qt4相关库的问题

news/2024/5/18 16:09:03 标签: tcp/ip, udp

最近需要做套接字通讯的工作,最好是有一个网络调试软件能够接受或者发送套接字,测试代码能够正常通讯。windows下有很多,但是linux下比较少,使用广泛的是下面这一款。在这里插入图片描述

1、安装

首先从网盘(链接: https://pan.baidu.com/s/1XLi3ta–yALHvvBhCKTJOQ?pwd=whx7 提取码: whx7 )下载软件,或者搜索ubuntu mNetAssist搜索下载。下载后通过sudo dpkg -i mNetAssist-release-amd64.deb安装,成功后会显示图标:
在这里插入图片描述

当我们打开这个软件会发现没有任何反应,实际上是因为缺少了相关的支持库。

2、排查

直接点击图标启动并不会显示报错及原因,需要通过命令行启动。上述软件被安装在/opt/目录下(这个目录下还安装了其他软件,如果其他软件也打不开或闪退等,也可以按这个方式来排查一下),进入/opt/mNetAssist/目录后,通过命令行./mNetAssist启动,发现报错了:

./mNetAssist: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory

QT4的框架在20.04及以后版本的主存储库已经删除了,老软件在新系统安装运行,缺失必要的依赖库,而依赖过时了,新系统不再支持安装,导致老软件运行不起。

实际上还不止缺少这个库,每次启动遇到缺少的就报错,显然只能解决一个排查一个,实际上我们也可以通过ldd ./mNetAssist命令来查看所有支持库的情况:

(base) ishyj@ishyj-XiaoXin-14-IRL8:/opt/mNetAssist$ ldd ./mNetAssist
	linux-vdso.so.1 (0x00007ffecafe9000)
	libQtGui.so.4 => not found
	libQtNetwork.so.4 => not found
	libQtCore.so.4 => not found
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007efda4fbc000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efda4d43000)
	libaudio.so.2 => not found
	libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007efda4bfe000)
	......

可以看到缺少libQtGui.so.4、libQtNetwork.so.4、libQtCore.so.4、libaudio.so.2四个库

3.1 如果本地存在so文件

那么我们可以先查一下本地是否存在:ldconfig -p | grep libQtGui,如果存在则记住其所在目录,然后修改~/.bashrc, 将找到的库文件所在文件夹加入到环境变量:

# 打开bashrc
vim ~/.bashrc

# 最后面追加,path为上文找到的库的目录
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:path

# 退出vim后,更新,然后可以再次ldd查询这个库是否找到了
source ~/.bashrc

3.2 如何在 Ubuntu 中安装 Qt4 库

参考:如何在 Ubuntu 中安装 Qt4 库 20.04 [Ubuntu 22.04 更新]

在上面的参考中有ubuntu20和ubuntu22安装qt4库的方法,这里简要说一下ubuntu20安装qt4的步骤:

sudo add-apt-repository ppa:rock-core/qt4
sudo apt update

sudo apt install PACKAGE_NAME

缺少什么so文件,就install PACKAGE_NAME就可,当然库文件和对应的PACKAGE_NAME在Packages in “Qt4 for Ubuntu 20.04”可以查到。

3.3 上法不奏效

如【linux】ubuntu20.04 运行软件 提示找不到过时的库 libQtCore.so.4、libQtGui.so.4、libpng12.so.0文中第1节所讲,可能上面3.2节方法不会有效(至少我的libqt4-network按照3.2奏效了,但是libQtGui和libQtCore是按照3.3节方法实现的)

本节的方法实际上就是将qt4中对应的库文件复制到系统中。

3.2.1 打开ubuntu主储存库

打开vim /etc/apt/sources.list查询到http://security.ubuntu.com/ubuntu/,打开
该链接,依次进入pool'--'main'--'q/'--'qt4/-x11,找到libqtgui4_4.8.7+dfsg-7ubuntu1_amd64.deb下载(其他库为libqtcore4_4.8.7+dfsg-7ubuntu1_amd64.deblibqt4-network_4.8.7+dfsg-7ubuntu1_amd64.deb,libaudio没有找到是按3.2节的方法解决的)。下载的deb是可以直接安装的,但是因为ubuntu20存在qt5这个高版本,所以安装是要报错的。
在这里插入图片描述

下载的deb解压后,进入解压data.tar.xz,进入data/usr/lib,在x86_64-linux-gnu下就是一些库文件。现在在lib文件夹下打开终端:

# 修改x86_64-linux-gnu下所有文件权限
sudo chmod 777 x86_64-linux-gnu/*

# 移动到/usr/lib/qt4文件夹中
sudo cp -r x86_64-linux-gnu/ /usr/lib/qt4

然后可以通过ldd /opt/mNetAssist/mNetAssist看看这个库文件是否支持了。

其他几个库文件都是安装上面的流程以此复制到qt4文件夹中

参考

Ubuntu20.04 tcp调试工具mNetAssist安装
【linux】ubuntu20.04 运行软件 提示找不到过时的库 libQtCore.so.4、libQtGui.so.4、libpng12.so.0


http://www.niftyadmin.cn/n/5337214.html

相关文章

Spring Boot 3.2.2整合MyBatis-Plus 3.5.5依赖不兼容问题

问题演示 导依赖 当你启动项目就会 抛出该异常 java.lang.IllegalArgumentException: Invalid value type for attribute factoryBeanObjectType: java.lang.String 问题原因 mybatis-plus 中 mybatis 的整合包版本不够导致的 解决方案 排除掉mybatis-plus 中 mybatis 的整合…

如何本地部署虚VideoReTalking

环境: Win10专业版 VideoReTalking 问题描述: 如何本地部署虚VideoReTalking 解决方案: VideoReTalking是一个强大的开源AI对嘴型工具,它是我目前使用过的AI对嘴型工具中效果最好的一个!它是由西安电子科技大学、…

PowerBI Copilot已全面支持中文识别

在前两天的文章中,我们讲过copilot in powerbi目前对中文输入语句的识别还不好: Copilot in Power BI等了好久终于等到今天 Copilot in Power BI详细使用说明 但是官方明确表示支持简体中文输入的,所以推测应该只是临时性问题。果然&#…

【设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构】

文章目录 一、什么是LRU?二、LinkedHashMap 实现LRU缓存三、手写LRU 一、什么是LRU? LRU是Least Recently Used的缩写,意为最近最少使用。它是一种缓存淘汰策略,用于在缓存满时确定要被替换的数据块。LRU算法认为,最近…

矩阵上运算

给定一个nn的方阵&#xff0c;本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 输入格式: 输入第一行给出正整数n&#xff08;1<n≤10&#xff09;&#xff1b;随后n行&#xff0c;每行给出n个整数&#…

基于YOLOv8的学生课堂行为检测,引入BRA注意力和Shape IoU改进提升检测能力

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;介绍了学生课堂行为检测&#xff0c;并使用YOLOv8进行训练模型&#xff0c;以及引入BRA注意力和最新的Shape IoU提升检测能力 1.SCB介绍 摘要&#xff1a;利用深度学习方法自动检测学生的课堂行为是分析学生课堂表…

黑色金属厂房3d数据可视化综合平台进一步保障生产效率

在当今的数字化时代&#xff0c;钢铁厂面临着降本增效、绿色环保、安全第一等发展问题&#xff0c;亟需寻找更有效的解决方案&#xff0c;数字孪生公司深圳华锐视点利用先进的数字孪生可视化、web3D开发和VR虚拟仿真技术制作数字孪生钢铁厂可视化管控平台&#xff0c;实现对钢铁…

Hadoop3完全分布式搭建

一、第一台的操作搭建 修改主机名 使用hostnamectl set-hostname 修改当前主机名 关闭防火墙和SELlinux 1&#xff0c;使用 systemctl stop firewalld systemctl disable firewalld 关闭防火墙 2&#xff0c;使用 vim /etc/selinux/config 修改为 SELINUXdisabled 使用N…