linux执行命令缺少共享库解决方法和ldd命令说明

2023-11-03

linux执行命令缺少共享库解决方法和ldd命令说明
[root@xiaogaokui ~]# which ldd
/usr/bin/ldd
[root@xiaogaokui ~]# file /usr/bin/ldd
/usr/bin/ldd: Bourne-Again shell script, ASCII text executable

ldd是一个shell脚本,ldd可以列出一个程序所需要得动态链接库(so)
[root@xiaogaokui ~]# ldd /usr/bin/ls
linux-vdso.so.1 => (0x00007ffd84fe7000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f46407cf000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f46405ca000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f46403c0000)
libc.so.6 => /lib64/libc.so.6 (0x00007f463fffd000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f463fd9b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f463fb96000)
/lib64/ld-linux-x86-64.so.2 (0x0000561fa1b64000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f463f991000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f463f775000)
注意:在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,
右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。
默认情况下,/etc/ld.so.conf 文件中包含有默认的共享库搜索路径。

[root@xiaogaokui ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# 如果需要,将所需共享库绝对路径卸载此处
# 或者在/etc/ld.so.conf.d/下新增conf文件引用共享库绝对路径
新增系统共享库需要运行ldconfig,用来属性系统的共享库缓存
为了减少共享库系统的库搜索时间,共享库系统维护了一个共享库 so 名称的缓存文件/etc/ld.so.cache。
因此,在安装新的共享库之后,一定要运行 ldconfig 刷新该缓存。

LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。
移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,
这时可以将这些目录设置到LD_LIBRARY_PATH中。
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$LD_BIBRARY_PATH

运行命令常见报错:
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
1.通过ldd脚本检测命令所需动态链接库
# ldd 命令
libappindicator3.so.1 => not found
2.在系统上安装共享库或者find
3.建立映射关系
# ln -s /xx/libc.so.6 /usr/bin/libc.so.6
4.source变量LD_LIBRARY_PATH

[oracle@xiaogaokui ~]$ ldd --help
Usage: ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations
-r, --function-relocs process data and function relocations
-u, --unused print unused direct dependencies
-v, --verbose print all information

For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

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

linux执行命令缺少共享库解决方法和ldd命令说明 的相关文章

  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • 在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法

    我有一个 dotnet SDK sln and a build proj with
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 如何使用 PyAudio 选择特定的输入设备

    通过 PyAudio 录制音频时 如何指定要使用的确切输入设备 我的电脑有两个麦克风 一个内置 一个通过 USB 我想使用 USB 麦克风进行录音 这流类 https people csail mit edu hubert pyaudio
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 如何从 Linux 命令行确定 LCD 显示器是否打开

    如何通过 Linux 命令行判断计算机的显示器是否打开 关闭 我传统上认为显示器是仅输出的设备 但我注意到 Gnome 显示器首选项对话框具有 检测显示器 功能 这可以推广到确定显示器是否物理关闭吗 VESA DDC 连接是I2C http
  • 即使使用 rvm pkg install zlib 后也无法加载此类文件 -- zlib

    我使用 rvm 安装了 zlib 包和 ruby 1 9 3 但是每当我尝试安装时 它说宝石cannot load such file zlib 我用来安装的命令是 rvm install 1 9 3 rvm pkg install zli
  • %config(noreplace) 文件上出现意外的 RPM 冲突

    我正在创建我自己的RPM using rpmbuild My RPM 包含配置文件哪个应该永远不会被覆盖 即使 RPM 包含这些配置文件的新版本 为了存档这个 我用以下标签标记了它们 config noreplace opt mypacka
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 如何防止 CMake 在构建时(而不是安装时)为共享库创建符号链接?

    我正在使用 CMake 在 Linux 上使用 Bullet3 构建一个项目 在构建整个解决方案时 它会构建附加了 SOVERSION 的 Bullet 输出库 并创建一个不带版本的符号链接 对于我的特定场景 我不喜欢这种行为 并且我不想编
  • 动态加载库和共享全局符号

    由于我在动态加载的库中观察到全局变量的一些奇怪行为 因此我编写了以下测试 首先我们需要一个静态链接库 头文件test hpp ifndef BASE HPP define BASE HPP include
  • OS X 对 /usr/local/lib 的权限被拒绝

    我正在寻找有关权限问题的任何建议 直觉 线索 答案 自从我切换到新的 Macbook Pro 以来 这个问题一直困扰着我 这就是困境 某些程序在安装期间复制 usr local lib 下的库 并且在运行这些程序时出现崩溃 我认为这与此文件
  • 如何更改 Kubernetes 中的文件系统观察程序限制 (fs.inotify.max_user_watches)

    我在用着pm2 https github com Unitech pm2查看保存我的应用程序服务器的 NodeJS 程序源代码的目录 该程序在 Kubernetes 集群中运行 但是 我收到此错误 ENOSPC System limit f
  • 如何从python导入路径中删除当前目录

    我想使用 Mercurial 存储库hg本身 也就是说 我克隆了 Mercurialhttps www mercurial scm org repo hg https www mercurial scm org repo hg并想运行一些h
  • Docker 容器可以访问 DNS,但无法解析主机

    我在运行 docker 容器时遇到一个有趣的问题 突然间 我无法从容器内解析 DNS 这是一个概要 一切都没有解决 apt get pip 一次性 ping 容器等正在运行docker run it dns 8 8 8 8 ubuntu p

随机推荐

  • 抖音api开放平台对接_抖音视频API解析接口

    发布抖音视频接口一枚 无限制免费调用 但需要AppKey 更新 2019 09 23 1 视频统计信息公开 2019 06 23 1 修复无水印解析失败BUG 2 接口返回内容调整 已获取视频播放量等统计信息 目前暂未公开 接口地址 htt
  • Connect was not declared in this scope

    QT程序中的事件机制是通过SIGNAL SLOT 信号 槽 来实现的 创建一个信号与槽的连接就是使用connect方法 它是QObject类下面的一个静态方法 基本上 所有的QT对象的基类都是QObject 所以 在非QObject的派生类
  • alsa-lib应用层接口分析

    ALSA lib接口调用简介 ALSA逻辑 在我当前看来 总共有两条线 1 录放音流控 2 amixer cset控件 录放音流控 自定义名称 相当于操作OSS的 dev dsp设备 可以设置三大参数等 并且启动录放音 这里 aplay m
  • Spring Boot底层原理详解及整合

    Spring Boot框架 通过Spring Boot 可以构建一个基于Spring框架的Java Application 简化配置 自动装配 开箱即用 JavaConfiguration用Java类代替XML的配置方式 Spring Bo
  • Java实现图的深度和广度优先遍历算法

    概述 最近要学习写网络爬虫 所以把图的深度和广度搜索都再温习一下 图结构展示 实现过程 首先 我们来看看图结构在代码中的实现 有三块逻辑 1 图中的节点 java view plain copy public class GraphNode
  • MongoDB(三):MongoDB图形化界面工具

    一 下载 MongoDBCompass 官方提供的 下载地址 https www mongodb com download center compass jmp docs 二 解压 启动 三 启动MongoDB 连接MongoDB服务 出现
  • Vue笔记——Vue组件中引入jQuery

    如果想在普通的HTML页面引入jQuer库的话 直接使用即可 但是如果要在Vue组件中使用jQuery库的话 使用这样的方式就不行了 需要使用以下方法 一 安装jQuery依赖 在使用jQuery之前 我们首先要通过以下命令来安装jQuer
  • Json字符串属性里面有逗号问题

    今天小编写 代码时候 后台给我返回的一个json字符串 name group id 123 所以不能通过name group id这样来 取值 不然会报没有id属性 看到这里相信很多程序员和小编一样肯定会骂后台传递的值不对 小编也是这样骂的
  • 快速排序详解(图解实例)

    快速排序 Quicksort 是对冒泡排序的一种改进 它的基本思想是 通过一趟排序将要排序的数据 分割成独立的两部分 其中一部分的所有数据都比另外一部分的所有数据都要小 然后再按此方法 对这两部分数据分别进行快速排序 整个排序过程可以递归进
  • 红外人体感应传感器SR602模块使用说明

    一 HC SR602模块 红外人体感应传感器HC SR602是基于红外线技术的自动控制模块 专用于感应周围人体的存在 该模块相较于HC SR501 灵敏度较高 抗干扰能力大 且简单易用 二 HC SR602模块主要参数 工作电压 3 3V
  • 使用手柄控制Unity及效果展示(1)

    Unity支持手柄的控制 效果图如下所示 这是一篇针对手柄控制U3D入门的过程记载 主要以实现功能为目的 分四个部分进行过程展示 Input System包的下载 设备的查找 Input Actions控件的使用 主要代码的解释及编写 这里
  • 【css】落叶飘动效果,点击落叶飘动停止

    做项目有个需求是要求做落叶下落效果 做了一下 整体是依靠css中animation属性来控制的 keyframes move控制动画轨迹 使用伪元素checked控制动画运行和暂停 css3文档中有这样的例子 利用伪元素checked控制动
  • python 删除一个字符串内重复的内容

    使用py将 a dai liu dai 去掉重复的dai a dai liu dai a list a split 将字符串拆分成列表 a set set a list 将列表转换为集合 去除重复的元素 result join a set
  • jest搭建vue项目单元测试-vue-cli创建新项目

    说到项目会分为新建的醒目和老项目两种 我们先来说新项目 新项目加入jest单元测试 1 创建项目 使用vue脚手架创建项目 test vue jest vue create test vue jest 2 创建项目过程中配置选项 在配置项中
  • OK彻底解决ping主机ping虚拟机之间ping不通的问题

    时间轴 一个月前 2022 8 重新玩虚拟机 因为计算机网络这块不扎实 知识点模糊 不懂其中各种原由 当然现在也不是很明白 后续还需要系统的回顾 在那是一直有几个问题 遇到以下问题需要解决 1 怎么选择桥接 nat的连接方式 现在也不清楚
  • 第七章 单行函数

    MySQL系列文章目录 http t csdn cn YTPe9 文章目录 MySQL系列文章目录 前言 一 函数的理解 1 什么是函数 2 不同DBMS函数的差异 3 MySQL的内置函数及分类 二 数值函数 1 基本函数 2 角度与弧度
  • C 语言char类型与int类型的转化

    目录 一 char转int 法一 直接转换 ASSCII编码表 ASCII可显示字符 法二 利用库函数转换 二 数字换成字符串 1 用sprintf 2 用库函数 char和int的转换有两种方式 这两种方式适合于在输出时使用 一 char
  • Android studio实现个人体重指数计算

    Java代码 package com example work1 import android app Activity import android app AlertDialog import android content Dialo
  • 基于 Android NDK 的学习之旅----- C调用Java(附源码)

    许多成熟的C引擎要移植到Android 平台上使用 一般都会 提供 一些接口 让Android sdk 和 jdk 实现 下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法 1 主要流程 1 新建一个测试类TestP
  • linux执行命令缺少共享库解决方法和ldd命令说明

    linux执行命令缺少共享库解决方法和ldd命令说明 root xiaogaokui which ldd usr bin ldd root xiaogaokui file usr bin ldd usr bin ldd Bourne Aga