【发布时间】:2018-04-16 17:57:18
【问题描述】:
我对共享库和操作系统的工作方式有点困惑。
第一个问题:操作系统如何管理共享库?如何唯一指定它们?通过文件名或其他一些(比如 ID)的东西?还是通过完整路径?!
第二个问题:我知道首先当我们编译和链接代码时,链接器需要访问共享库(.so)来执行链接,然后在我们执行编译程序的这个阶段之后,操作系统会加载共享库,这库可能位于不同的位置(我错了吗?)但我不明白操作系统如何知道在哪里查找共享库,库信息(名称?路径?还是什么?!)编码在可执行文件中?
【问题讨论】:
-
查看
/var/lib目录,你会看到所有libXXX.so.*文件 -
不,
/var/lib不适用于库,而是用于持久的系统范围数据。
标签: c linux unix operating-system shared-libraries