IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Error : loading shared libraries: cannot open shared object file: No such file or directory -> 正文阅读

[系统运维]Error : loading shared libraries: cannot open shared object file: No such file or directory

Error : loading shared libraries: cannot open shared object file: No such file or directory

1. 问题描述 :

程序S运行需要库L1库L2的支持。 库L1/L2完成安装后, 执行软件 S 时,库L2 shared object 无法加载, 提示文件或路径不存在

**2. 解决方法: **

当库为动态库(dynamic library)时, 运行程序S时需要为操作系统指明动态库的路径。

2.1 确定库(library)的路径:
$ sudo find / -name library_name.so
2.2 确定动态库路径是否存在于环境变量(LD_LIBRARY_PATH)
$ echo $LD_LIBRARY_PATH 
2.3 将动态库路径赋值给环境变量(LD_LIBRARY_PATH)
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/the/lib
$ export LD_LIBRARY_PATH

即可运行程序。

拓展:

**1. Linux系统中的库文件 : **
库是被称为函数的预编译代码段的集合。库包含公共函数,它们一起形成一个包,称为库。函数是在整个程序中重复使用的代码块。在程序中重复调用这些代码片段可以节省时间。可以避免多次重写代码。对于程序员来说,库提供可重用的函数、数据结构、类等等。

库是不可执行的,这是进程和应用程序的关键区别。库在运行时或编译时发挥作用。在C编程语言中,有两种类型的库:动态库和静态库。

**动态库与静态库 : **
动态或共享库(dynamic or shared libraries)作为可执行程序文件之外的独立文件出现。因此,程序在运行时只需要动态/共享库文件的一个副本。而静态库(static libraries)被锁定在程序中。

**2. Linux 系统环境变量: **
环境变量与shell 变量 :

环境变量由shell管理。环境变量与常规shell变量的区别在于,shell变量是shell的特定实例(比如shell脚本)的局部变量,而环境变量是由您启动的任何程序“继承”的,包括另一个shell。也就是说,新进程获得自己的这些变量的副本,它可以读取、修改这些变量,并依次传递给自己的子进程。事实上,每个UNIX进程(不仅仅是shell)都将其环境变量传递给其子进程。

  • 在程序及其子程序中,环境变量是全局可用的。shell变量仅在当前shell中可用。
  • $SHELL这样的环境变量在系统范围内是有效的。在当前的Bash shell中,$ Bash指向Bash的执行路径,而$ shell指向定义为defaultshell(其值可能相同)。
#定义shell变量 VAR 及其 value
[biocodee@localhost ~]$ VAR="This is a variable"
[biocodee@localhost ~]$ echo $VAR
This is a variable
#查看shell变量是否存在于环境变量 env 当中
[biocodee@localhost ~]$ env | grep VAR
#将shell 变量转变为 环境变量
[biocodee@localhost ~]$ export VAR
[biocodee@localhost ~]$ env | grep VAR
VAR=This is a variable

参考资料:
[1] Linux error while loading shared libraries: cannot open shared object file: No such file or directory
[2] Linux Basics: Static Libraries vs. Dynamic Libraries
[3] Shell and Environment Variables.UNIX POWER TOOLS.
[4] Environment variable vs Shell variable, what’s the difference?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章           查看所有文章
加:2021-10-25 12:48:54  更:2021-10-25 12:51:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:34:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码