MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > linux / 正文

Linux:动态链接库的查找顺序

2024-11-26 15:22 huorong linux 4 ℃ 0 评论

由于动态链接库存在下面优点,Linux可执行程序经常使用动态库:

  • 更加节省内存并减少页面交换;
  • so文件与可执行文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换so文件不会对可执行文件造成任何影响,因而极大地提高了可维护性和可扩展性;
  • 不同编程语言编写的程序只要按照函数调用约定就可以调用同一个so函数;
  • 适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。
  • 节约磁盘空间:当应用程序使用动态链接时,多个应用程序可以共享磁盘上单个so副本。相比之下,当应用程序使用静态链接库时,每个应用程序要将库代码作为独立的副本链接到可执行镜像中。

那么你们知道可执行程序在执行时是怎么找到这些so文件的吗?其实Linux为了可执行文件运行时寻找so文件可以通过以下三类路径去寻找的,按照顺序分别是:

(1) 环境变量LD_LIBRARY_PATH指定的路径

export LD_LIBRARY_PATH=LIBPATH1:LIBPATH2:$LD_LIBRARY_PATH

(2) 文件 /etc/ld.so.cache中指定的路径

可以修改文件/etc/ld.so.conf或者目录/etc/ld.so.conf.d下面的.conf文件,然后再执行ldconfig命令更新 /etc/ld.so.cache

(3) 默认路径/lib/usr/lib

Tags:linux查看网络连接

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言