Linux下出现error while loading shared libraries,...cannot open shared object file: No such file..

本文介绍了当遇到共享库文件(.so文件)加载失败时的解决方法。通过设置LD_LIBRARY_PATH环境变量,可以指定系统在链接共享库时查找的路径,从而解决因路径问题导致的加载失败。

很多时候,当你下载了一个安装包之后。执行时,可能会出现如下的错误

error while loading shared libraries,...cannot open shared object file: No such file or directroy

而在你下载的安装包里面,共享库文件(.so的文件)就躺在那里啊。为什么还是提示找不到呢??
原来当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib’ and ‘/usr/lib’的时候,就会提示找不到库文件。所以一种解决办法就是将库文件移动到缺省目录‘/lib’ 和 ‘/usr/lib’下。

这里我解决办法是采用的设置 LD_LIBRARY_PATH环境变量。
LD_LIBRARY_PATH主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。

所以打开~/.bashrc 设置环境变量(个人喜好):

gedit ~/.bashrc

在文件尾部添加:

export LD_LIBRARY_PATH=“库文件的路径“

最后:

source ~/.bashrc

搞定!!!

### 解决 Linux 系统中加载共享 `libMiddlewareMod.so` 失败的问题 当遇到错误提示 "error while loading shared libraries: libMiddlewareMod.so: cannot open shared object file: No such file or directory"[^1],这通常意味着系统无法找到所需的共享文件。以下是几种可能的解决方案: #### 1. 安装缺失的依赖包 如果 `libMiddlewareMod.so` 是由某个特定软件包提供,则可以通过安装该软件包来解决问题。可以使用包管理工具查找并安装相应的。 对于基于 Debian 的发行版(如 Ubuntu),可执行如下命令: ```bash sudo apt-get update && sudo apt-get install --reinstall libmiddlewaremod-dev ``` 对于基于 Red Hat 的发行版(如 CentOS 或 Fedora),则应运行: ```bash sudo yum reinstall libmiddlewaremod-devel ``` #### 2. 设置环境变量 LD_LIBRARY_PATH 另一种方法是在启动应用程序之前设置 `LD_LIBRARY_PATH` 环境变量,使其包含 `libMiddlewareMod.so` 所在目录路径。假设此位于 `/opt/middleware/lib/` 下面,那么可以在 shell 中输入以下指令: ```bash export LD_LIBRARY_PATH=/opt/middleware/lib:$LD_LIBRARY_PATH ``` #### 3. 更新动态链接器缓存配置 还可以通过修改 `/etc/ld.so.conf.d/` 文件夹下的配置文件或将新条目添加到其中的一个 .conf 文件里,之后调用 ldconfig 来更新系统的动态链接器缓存。例如,在 `/etc/ld.so.conf.d/local.conf` 添加一行指向的位置: ```plaintext /opt/middleware/lib/ ``` 保存更改后,刷新缓存: ```bash sudo ldconfig ``` #### 4. 创建符号链接 如果存在不同版本号但功能相同的文件,比如有更高版本的 `.so.x.y.z` 而缺少低版本的 `.so.n` 链接时,可以考虑建立软连接作为临时措施。注意这种方法仅适用于兼容的情况。 ```bash sudo ln -s /path/to/existing/newer_version_libMiddlewareMod.so /path/to/target_directory/libMiddlewareMod.so ``` 以上任一操作都应当能够帮助解决由于找不到指定共享而导致的应用程序启动失败问题。不过建议先确认实际需求再采取行动,并备份好原始状态以便回滚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值