解决linux动态库依赖问题的三种实用方法分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 概述平时在编译安装某个软件时,如果自定义了一些安装目录,安装后
解决linux动态库依赖问题的三种实用方法分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
概述
平时在编译安装某个软件时,如果自定义了一些安装目录,安装后有可能会提示找不到动态库。下面介绍下思路和三个解决方法。
思路
一般来说,通过make命令已经将程序依赖的动态库编译出来了,通过make install命令已经将动态库安装到系统的某个路径下。找没找到动态库就看这个路径是否包含在系统默认搜索动态库的路径中,如果不在,那么就会提示找不到动态库。以下三种方法,就是根据前面的分析来解决的。
方法一:修改LD_LIBRARY_PATH环境变量
特点:这种方法主要处理临时的动态库加载,LD_LIBRARY_PATH环境变量修改后,只能是对当前的用户生效。
LD_LIBRARY_PATH的作用:这个环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。
具体步骤:
找到动态库所在路径:sudo find / -name "[动态库名字]"
打开~/.bash_profile文件
在该文件***一趟添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[动态库所在的绝对路径]
source ~/.bash_profile
方法二:修改/etc/ld.so.conf配置文件
特点:对所有用户生效。不是每个操作系统都有这个配置文件,就ubuntu系统有。
/etc/ld.so.conf的作用:记录了程序加载运行期间查找动态链接库时的路径。
具体步骤:
找到动态库所在路径:sudo find / -name "[动态库名字]"
打开/etc/ld.so.conf文件:sudo vi /etc/ld.so.conf
在***一行添加动态库的绝对路径
重新加载/etc/ld.so.conf文件:sudo ldconfig -v
方法三:创建动态库的软连接(推荐)
特点:让所有用户生效;并且通用,只要是Linux类型的操作系统,都会去/usr/lib目录下去找动态库。
具体步骤:
找到动态库所在路径:sudo find / -name "[动态库名字]"
创建动态库软连接:ln -s [动态库] [待创建的软链接]
注意:
创建软连接的时候要用绝对路径,如果用相对路径,会导致只在当前路径有效,其他路径这个软连接就找不到了。
不建议用cp的方式代替ln -s的方式。原因:当动态库升级的时候,有可能导致动态库版本不一致,还是链接的旧版本。
上面主要讲三个创建动态库的方法,其中ln -s方式是比较常用的。
关于解决Linux动态库依赖问题的三种实用方法分别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网操作系统频道了解更多相关知识。
--结束END--
本文标题: 解决Linux动态库依赖问题的三种实用方法分别是什么
本文链接: https://lsjlt.com/news/282944.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0