cannot open shared object file: No such file or directory

Linux下解决动态库加载失败:一步步教你查找与配置
本文详细指导如何在Linux中处理‘无法打开共享对象文件’错误,包括使用ldd检查缺失库、设置LD_LIBRARY_PATH和修改/etc/ld.so.conf。适合初学者解决so文件引用问题。

一、linux下调用动态库.so文件时提示:

cannot open shared object file: No such file or directory
解决办法:

 1、此时ldd xxx查看依赖缺少哪些库

    libmysqlcppconn.so.7 => not found
    libboost_system.so.1.64.0 => not found
 2、设置变量 LD_LIBRARY_PATH

vim ~/.bashrc
最后一行加上:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/path

 按下快捷键shift+

输入wq!

保存编辑退出

执行source ~/.bashrc指令,再ldd,就可以找到库路径了。

二、(推荐)修改共享库配置文件/etc/ld.so.conf

java导入动态库system.load("xxx")时也会出现cannot open shared object file: No such file or directory,此时修改LD_LIBRARY_PATH还是会报错,可以修改/etc/ld.so.conf

1、设置:

sudo gedit /etc/ld.so.conf
2、添加库路径:

include /etc/ld.so.conf.d/*.conf
/home/xxx/Documents/core/Linux/Test/src/Test
保存退出;

3、使配置立即生效

sudo ldconfig


原文链接:https://blog.youkuaiyun.com/qc530167365/article/details/91491851

Linux系统中,`cannot open shared object file: No such file or directory` 错误意味着系统无法找到程序依赖的某个共享库(动态链接库)。以下是解决该错误的多种方案: 1. **确认库文件是否存在**:需要确认报错信息中的共享库文件是否真的存在于系统中。如果找到了文件,要确保它的路径是正确的[^3]。 2. **设置 `LD_LIBRARY_PATH`**:若找到了库文件,但不在标准库路径中,可以通过设置 `LD_LIBRARY_PATH` 环境变量来包含该路径。例如,如果库位于 `/usr/local/lib`,可执行以下命令: ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ``` 然后再次尝试运行程序[^3]。 3. **安装或重新安装库**:如果库文件不存在,可能需要安装它,具体方式取决于操作系统和包管理器。例如在Ubuntu/Debian系统中,可使用 `sudo apt-get install` 命令;在CentOS/RHEL系统中,可使用 `sudo yum install` 命令。以安装 `libgl1-mesa-glx` 为例,在Ubuntu/Debian系统中运行: ```bash sudo apt-get update sudo apt-get install -y libgl1-mesa-glx ``` 在CentOS/RHEL系统中运行: ```bash sudo yum install -y mesa-libGL ``` [^3][^5] 4. **检查依赖关系和版本兼容性**:确保安装的库版本与应用程序兼容,可以使用 `ldd` 命令来检查应用程序依赖哪些库以及它们的路径: ```bash ldd /path/to/your/application ``` [^3] 5. **重新编译或获取正确的库版本**:如果库文件是源代码编译生成的,要确保在编译时使用了正确的编译器标志和链接器标志。如果是第三方库,查看其文档或网站以获取正确的安装方法或预编译的二进制包[^3]。 6. **针对特定情况处理**:对于 `pytorch` 中出现的此类错误,如 `ImportError: libc10_cuda.so: cannot open shared object file: No such file or directory` 等,可能是因为 `torch-gpu` 版被 `torch-cpu` 版覆盖了,需要重新安装正确版本的 `torch` [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值