【linux】ubuntu20.04 运行软件 提示找不到过时的库 libQtCore.so.4、libQtGui.so.4、libpng12.so.0

2023-05-16

先上结果

1、nxView运行起来

在这里插入图片描述

环境

硬件: Jetson Xavier NX 套件
系统:Ubuntu 20.04
软件 :nxView + libQtCore.so.4…

解决

0、现象

运行软件提示以下错误

nxView: error while loading shared libraries: libQtCore.so.4: cannot open shared object file: No such file or directory
nxView: error while loading shared libraries: libQtNetwork.so.4: cannot open shared object file: No such file or directory
nxView: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory
nxView: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

最近在ubuntu20.04上安装nxView软件,安装好后在桌面打开软件时,鼠标开始转圈圈,转了几秒钟就没法应了,意识到软件应该是有什么依赖没有装好。

//这里比较关键,缺失什么依赖,全靠这一步发现
在终端上运行
sudo nxView

果然,报错!提示找不到库libQtCore.so.4。

1、分析

The Qt4 framework has been removed from Ubuntu 20.04 main repository. It is however still required for some obsolete applications.
QT4的框架在20.04及以后版本的主存储库已经删除了,也就是已经不能通过正常的apt-get安装。但是我现在又必须使用此软件,那就只能解决软件在当前系统上的依赖问题。
根结在于,老软件在新系统安装运行,缺失必要的依赖库,而依赖过时了,新系统不再支持安装,导致老软件运行不起。
在网上找了下解决方法,有使用增加apt的存储库方法的(详见参考1How to Install Qt4 Libraries in Ubuntu 20.04 [Ubuntu 22.04 Updated])。但是我尝试了下,发现并不行update后,安装时依然找不到常用qt4的库。

2、思路

根据参考2在Ubuntu20.04中继续使用linux版“网络调试助手”的方法的思路:找到硬件对应的低版本系统,在/usr/lib/aarch64-linux-gnu/里把需要的库拷出来,复制到当前系统的对应目录下即可。

但是我这里又没有第二套开发套件,又不想重装低版本系统,所以另辟蹊径地想到:
直接在网页上打开进入ubuntu的存储库,下载所需的依赖lib安装包,然后sudo dpkg -i手动进行安装。这样既可不修改系统本身安装源,又可缺什么加什么。

3、解决

0、网页上打开进入ubuntu主存储库

//最好使用自己系统sources.list里的地址
vim /etc/apt/sources.list

在这里插入图片描述

//复制网址,在网页打开,进入ubuntu 的主存储库  
 http://ports.ubuntu.com/ubuntu-ports/ 

在这里插入图片描述
进入pool目录,选择main,即可选择,根据库名字 ,导向进入对应目录进行下载 ,

1、下载所需库的安装包

qt的库在q/
在这里插入图片描述
进入
/q/qt4-x11
下 ,找到libqtcore4 ,根据自己的处理器的架构下载对应的版本,Jetson Xavier NX 需要下载arm64的 ,如果是Intel的cpu一般是amd64
在这里插入图片描述

2、安装库

在终端上手动安装

sudo dpkg -i libqtcore4_4.8.7+dfsg-5ubuntu2_arm64.deb

结果提示,当前已经有更高版本,直接安装不了

(Reading database ... 314804 files and directories currently installed.)
Preparing to unpack libqtcore4_4.8.7+dfsg-5ubuntu2_arm64.deb ...
Unpacking libqtcore4:arm64 (4:4.8.7+dfsg-5ubuntu2) over (4:4.8.7+dfsg-5ubuntu2) ...
Replaced by files in installed package qtchooser (66-2build1) ...
Replaced by files in installed package libqt5core5a:arm64 (5.12.8+dfsg-0ubuntu2.1) ...
dpkg: dependency problems prevent configuration of libqtcore4:arm64:
 qtchooser (66-2build1) breaks libqtcore4 (<< 4:4.8.7+dfsg-7~) and is installed.
  Version of libqtcore4:arm64 to be configured is 4:4.8.7+dfsg-5ubuntu2.
 libqt5core5a:arm64 (5.12.8+dfsg-0ubuntu2.1) breaks libqtcore4 (<< 4:4.8.7+dfsg-20~) and is installed.
  Version of libqtcore4:arm64 to be configured is 4:4.8.7+dfsg-5ubuntu2.

dpkg: error processing package libqtcore4:arm64 (--install):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
/sbin/ldconfig.real: /lib/aarch64-linux-gnu/libQtGui.so.4 is not a symbolic link

/sbin/ldconfig.real: /lib/aarch64-linux-gnu/libpng12.so.0 is not a symbolic link

/sbin/ldconfig.real: /lib/aarch64-linux-gnu/libQtNetwork.so.4 is not a symbolic link

Errors were encountered while processing:
 libqtcore4:arm64

那就把deb包里的动态库拷出来,手动复制到**/usr/lib/aarch64-linux-gnu/
直接在文件浏览窗口双击打开包
进入如下目录,右键
aarch64-linux-gnu/** ,Extract(提取)到指定位置
在这里插入图片描述
在上述指定位置找到刚刚提取的库,下图三个文件都要复制哈

//给所有库都修改成全权限,然后再复制
sudo chmod 777 ./*
sudo cp ./libQtC* /usr/lib/aarch64-linux-gnu

在这里插入图片描述

3、再次在终端运行软件

sudo nxView

看是否还有缺失依赖库,若还缺失,可参照以上0-2步骤,重复解决。
我安装的nxView每次运行都只提示一个缺失库,最后解决下来发现它依赖了以下四个过时的库

libQtCore.so.4、libQtNetwork.so.4、 libQtGui.so.4、libpng12.so.0

所以,我重复了4 次才让nxView,在我的Jetson Xavier NX上运行起来。

参考

1、How to Install Qt4 Libraries in Ubuntu 20.04 [Ubuntu 22.04 Updated]
2、在Ubuntu20.04中继续使用linux版“网络调试助手”的方法
OK!
至此,问题解决。欢迎留言交流

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【linux】ubuntu20.04 运行软件 提示找不到过时的库 libQtCore.so.4、libQtGui.so.4、libpng12.so.0 的相关文章

随机推荐

  • 什么是奇校验(Odd Parity),什么是偶校验(Even Parity)?

  • 2021-03-08

    今天在网上安装PR xff0c 网上下载的安装器把电脑默认装了一大堆垃圾工具 xff0c 依次删除后突然发现谷歌浏览器主页被篡改了 xff0c 随后用360等工具修复 xff0c 均提示无异常 通过浏览器设置和重置主页后仍然无效 xff0c
  • 2021-03-08

    大疆无人机自己动手更换电芯的注意事项 xff0c 当电池多电芯出现均大压差且调整数据无效后 xff0c 或发现某块或多块电芯鼓包 xff0c 说明电芯已经老化 xff0c 寿命用尽 xff0c 就需要更换电芯了 xff0c 厂家为保护消费者
  • can't run '/etc/init.d/rcS': No such file or directory 最终解决方法

    drivers rtc hctosys c unable to open rtc device rtc0 end request I O error dev mtdblock2 sector 256 isofs fill super bre
  • Ubuntu下的CuteCom串口详细调试教程

    I MX6ULL嵌入式开发学习 串口调试 一 Ubuntu下的串口调试助手安装 嵌入式开发学习过程中学习到串口调试这一章 xff0c 以前在Win10操作时都有相对应的串口调试界面 xff0c 安装个串口驱动在电脑设备端口里面看到COM3时
  • STM32 串口

    文章目录 USART 通信协议RS 232与TTL电平 串口通信数据包组成USART功能框图讲解引脚寄存器状态寄存器 USART SR 数据寄存器 USART DR 控制寄存器 USART CR 波特比率寄存器 USART BRR 发送过程
  • printf二进制数据

    基于之前这篇文章的代码改进了下 xff1a http blog csdn net xzongyuan article details 28889063 之前打印的数字没有补0 我打印了内存信息 xff0c 结果是这样的 xff0c 不能对齐
  • 分析MySQL数据类型的长度

    分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的 34 长度 34 xff0c 有CHAR Length VARCHAR Length TINYINT Length SMALLINT Length MEDIUMINT L
  • 为vscode配置clangd

    目录 安装clangd 后端安装clangd 前端修改基础配置生成compile commands json文件基本效果补全warning提醒自动修改存在问题 注意事项 clangd能提供更好的补全和提示 xff0c 自带检查一些warni
  • 论文笔记(十九)RGB-D Object Tracking: A Particle Filter Approach on GPU

    RGB D Object Tracking A Particle Filter Approach on GPU 文章概括摘要1 介绍2 贡献3 粒子滤波器4 可能性评估5 实施细节6 实验A 物体模型B 合成序列C 真实序列 7 结论8 鸣
  • Ubuntu 命令行 访问网页

    安装w3m 1 进入 root apt get install w3m 2 测试是否成功 xff1a w3m https blog csdn net x xx xxx xxxx article details 92574331
  • 代码管理中Trunk、Branches、Tags的区别和联系

    我们可以将这三者想象成一棵树的组成部分 trunk为树干branches为树枝tags为整棵树 trunk用于主线开发 branches用于定制版本 修复bugs 并行开发等使用 tags用于存放release版本 xff0c 阶段性代码
  • linux使用curl请求(带参数)

    1 2 3 curl G d 34 c 61 amp a 61 34 http www net index php
  • 惯导系列(二):滤波相关的算法

    前言 我又消失了一段时间 xff0c 这段时间研究了惯性导航有关的算法 xff0c 整理了不少博客 xff0c 字数比较多 xff0c 图片比较多 学到了很多知识 目录 前言 本节介绍 一 Mahony算法 1 1 PID控制算法 1 2
  • STM32 CAN 设置多个过滤器接收多ID方法

    1 标识符列表模式 xff0c 32位模式下 void MX CAN Init void 这里是实现了两个地址的接收 一个是用来接收广播信息 一个用来接收私有地址 如果想实现多个地址可以添加多个过滤器组 stm32103 有0 13 共14
  • linux下运行动态库问题 cannot open shared object file: No such file or directory

    如果动态库不在同一级目录下 xff0c 则需要将以上文件的目录加载到动态库搜索路径中 xff0c 设置的方式有以下几种 一 将动态库路径加入到LD LIBRARY PATH环境变量 1 在终端输入 xff1a export LD LIBRA
  • 几个串口通信协议的整理

    一 UART UART是一个大家族 xff0c 其包括了RS232 RS499 RS423 RS422和RS485等接口标准规范和总线标准规范 它们的主要区别在于其各自的电平范围不相同 嵌入式设备中常常使用到的是TTL TTL转RS232的
  • 单片机中断的过程

    1 根据响应的中断源的中断优先级 使相应的优先级状态触发器置1 xff1b 2 把当前程序计数器PC的内容压入堆栈 xff0c 保护断点 xff0c 寻找中断源 xff1b 3 执行硬件中断服务子程序调用 xff1b 4 清除相应的中断请求
  • Ruby学习札记(3)- Ruby中gem的安装与卸载

    Ruby 学习札记 3 Ruby 中 gem 的安装与卸载 在 Ruby 中有 gem 包这种概念 xff0c 类似 PHP 中的 pear xff0c 相当于一种插件 具体可以 Google 一下 xff08 1 xff09 查看已经安装
  • 【linux】ubuntu20.04 运行软件 提示找不到过时的库 libQtCore.so.4、libQtGui.so.4、libpng12.so.0

    先上结果 1 nxView运行起来 环境 硬件 xff1a Jetson Xavier NX 套件 系统 xff1a Ubuntu 20 04 软件 xff1a nxView 43 libQtCore so 4 解决 0 现象 运行软件提示