Linux动态库(.so)搜索路径(目录)设置方法

来源:互联网 发布:5eplay对战平台知乎 编辑:程序博客网 时间:2024/05/18 03:58

众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动 态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。


Linux动态库(.so)搜索路径(目录)设置方法


方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径

步骤一:修改搜索路径,vi /etc/ld.so.conf 
步骤二:添加so文件到搜索路径 lib目录 下

步骤三:配置生效,ldconfig


方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径

命令行执行或者在启动脚本中执行如下命令

export LD_LIBRARY_PATH=”LD_LIBRARY_PATH:/opt/” 


方法三:在编译目标代码时指定该程序的动态库搜索路径

在编译目标代码时指定程序的动态库搜索路径。通过gcc 的参数”-Wl,-rpath,”指定。


参考资料

【1】How Libc shared library loaded in memory and shared amongst processes?

【2】Static, Shared Dynamic and Loadable Linux Libraries

【3】The inside story on shared libraries and dynamic loading