通常,在编译和安装某个软件时,如果自定义某些安装目录,可能会在安装后提示您查找动态库。以下描述了这些想法和三种解决方案。
思想
通常,程序所依赖的动态库已由make命令编译。动态库已通过make install命令安装到系统的某个路径。如果找不到动态库,则可以查看该路径是否包含在系统默认搜索动态库的路径中。如果不是,系统将提示您查找动态库。根据之前的分析,解决了以下三种方法。
方法1:修改LD_LIBRARY_PATH环境变量
特点:该方法主要处理临时动态库加载。修改LD_LIBRARY_PATH环境变量后,它只对当前用户有效。
LD_LIBRARY_PATH的作用:此环境变量用于在程序加载运行期间搜索动态链接库时指定系统默认路径以外的路径。请注意,LD_LIBRARY_PATH中指定的路径将在系统默认路径之前被查找。
具体步骤:
1,找到动态库的路径:sudo find/-name'[动态库名]]
2,打开〜/.bash_profile文件
3.在文件的最后一行添加:export LD_LIBRARY_PATH=$ LD_LIBRARY_PATH: [动态库所在的绝对路径]
4,源〜/.bash_profile
解决Linux动态库依赖问题的三种实用方法
方法2:修改/etc/ld.so.conf配置文件
特点:对所有用户有效。并不是每个操作系统都有这个配置文件,就像Ubuntu系统那样。
/etc/ld.so.conf的作用:记录在程序加载运行期间查找动态链接库的路径。
具体步骤:
1,找到动态库的路径:sudo find/-name'[动态库名]]
2,打开/etc/ld.so.conf文件:sudo vi /etc/ld.so.conf
3.在最后一行添加动态库的绝对路径。
4.重新加载/etc/ld.so.conf文件:sudo ldconfig -v解决Linux动态库依赖问题的三种实用方法
方法3:创建到动态库的软连接(推荐)
特点:让所有用户都有效;和通用,只要它是一个Linux类型的操作系统,转到/usr/lib目录查找动态库。
具体步骤:
1,找到动态库的路径:sudo find/-name'[动态库名]]
2,创建动态库软连接:ln -s [动态库] [要创建的软链接]
注意:
1.创建软连接时,请使用绝对路径。如果使用相对路径,则它仅在当前路径中有效。找不到另一条路径。
2,不建议使用cp而不是ln-s。原因:升级动态库时,可能导致动态库版本不一致或链接的旧版本。