解决Linux可执行文件目录下明明存在*.so文件,但却提示找不到
更新时间:2023年11月24日 11:08:46 作者:有梦想的伟仔
这篇文章主要介绍了解决Linux可执行文件目录下明明存在*.so文件,但却提示找不到问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
目录
- 加载机制的问题
- 1、在Windows上
- 2、在Linux上
- 3、解决问题
- 总结
加载机制的问题
在Linux上,动态库的加载机制和在Windows上完全不一样
其实应该叫做【共享库】才对,动态库是Windows的概念,Windows上为*.dll,Linux上为*.so。
- dll:dynamic link library,即:动态链接库。
- so:share object(library),即:共享库。
1、在Windows上
一个可执行程序会先在当前目录下找需要的动态库(*.dll)文件,如果当前目录下有,则加载。
如果当前目录没有,才会去系统的环境变量目录下去找,如果找到了,则加载,如果连环境变量中都找不到,将报错。
2、在Linux上
一个可执行程序会直接去 “环境变量目录下” 找共享库(*.so),如果找不到,则报错。
“环境变量目录下” 打了引号,因为这更像是一个专门用于【共享库】的环境变量,Linux的环境变量应该是PATH(可在终端输入这个查看:echo $PATH),PATH跟Windows上的环境变量又不一样,PATH描述的是Linux命令的一个路径,而Windows上的环境变量描述的是命令 + 库。
Linux的库的加载,由 /etc/ld.so.conf 和 /etc/ld.so.conf.d/*.conf 来进行加载的,不妨一个一个打开看看就一切都明白了。
3、解决问题
(其实如果2中打开看了 /etc/ld.so.conf 和 /etc/ld.so.conf.d/*.conf就已经懂了,无论看没看,想直接解决问题,请看一下操作)
①将.so文件路径的目录添加到/etc/ld.so.conf
sudo vim /etc/ld.so.conf
方法1:在文件末行,添加自己的库的路径。
方法2:将自己的库,复制到ld.so.conf文件中的其中一个路径下(如:/usr/lib 或 /usr/local/lib。推荐/usr/local/lib,能够避免受到Linux升级的影响)。
②让①中的修改生效
sudo /sbin/ldconfig
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- Linux下文件夹的移动与复制详解
- 在Linux中重命名文件和目录的几种方法
- 详解如何在linux系统中更改文件和目录的权限
- Linux实现将磁盘分区挂载到文件目录
- Linux移动文件夹(目录)以及目录下的内容问题
- Linux
- 执行文件
- 目录
- so文件
相关文章
-
linux安装jdk并设置环境变量的方法教程(看这一篇够了)
这篇文章主要介绍了linux安装jdk并设置环境变量的相关资料,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 2020-02-02
-
Linux CentOS 定时运行脚本配置的方法
今天小编就为大家分享一篇Linux CentOS 定时运行脚本配置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2019-06-06
-
Apache下禁止特定目录执行PHP 提高服务器安全性
之前在博文从PHP安全讲DedeCms的安全加固中说过在PHP安全中保护“可写目录下的文件不允许被访问到的重要性,还提出了改名文件夹的方式来保护该目录。 2009-11-11
-
Centos7.2 编译安装方式搭建 phpMyAdmin
这篇文章主要介绍了Centos7.2 编译安装方式搭建 phpMyAdmin ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2017-08-08
-
Linux中配置双机SSH信任 操作说明
本篇文章小编为大家介绍,Linux中配置双机SSH信任 操作说明。需要的朋友参考下 2013-04-04
-
CentOS6.4 下安装SVN的详细教程(超详细)
这篇文章主要介绍了CentOS6.4 下安装SVN的详细教程,在安装之前需要检查是否已经安装过了,然后使用yum install subversion安装,具体操作详细过程请参考本文 2016-10-10
-
Linux利用Shell脚本部署jar包项目的完整步骤
这篇文章主要给大家介绍了关于Linux如何利用Shell脚本部署jar包项目的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2019-12-12
-
关于AIX挂载NFS写入效率低效的解决方法
这篇文章主要给大家介绍了关于AIX挂载NFS写入效率低效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2018-11-11
-
详解CentOS7下安装Mysql和配置mysql
本篇文章主要介绍了详解CentOS7下安装Mysql和配置mysql,具有一定的参考价值,有兴趣的可以了解一下。 2016-12-12
-
ubuntu lighttpd+webpy (fastcgi)配置方法
首先安装 lighttpd 和 webpy,因为用 kpackagekit 做软件管理,在安装 webpy 的时候会自动安装 flup 2009-07-07