【问题标题】:Shared library internal共享库内部
【发布时间】:2010-11-25 21:00:45
【问题描述】:

我想知道我在符号表引用方面询问的共享库是如何工作的。 是不是就像当我们包含一个共享库时,它会导出符号表以进行处理,然后根据一些指针我们执行相应的函数。

Shared library Strip是什么意思?

编辑:- 我想知道共享库在加载到内存时是如何工作的。\ 当一个函数让我们说 Fun() 从库中有 def 的应用程序调用时。那么这种链接是如何发生的。我希望现在它清楚了。

【问题讨论】:

  • 你能澄清你的问题吗?我不确定你在问什么。

标签: linux linker shared-libraries loader


【解决方案1】:

程序通过过程链接表调用共享库,该表由动态链接器/加载器ld.so 根据动态符号表和重定位条目中的信息填充。在 Linux 上,这些数据以ELF 格式存储在程序和库中,您可以使用objdumpreadelf 等程序进行检查。

This Linux Journal article 有一个基本的概述。有关更多详细信息,请查看 Ulrich Drepper 的优秀论文 How To Write Shared Libraries 和 Solaris Linker and Libraries Guide

【讨论】:

  • 另一个非常深入的解释,虽然不是免费的,但可以在 John R. Levine 的书Linkers & Loaders 中找到。
猜你喜欢
  • 1970-01-01
  • 2010-11-18
  • 2021-02-26
  • 1970-01-01
  • 2022-06-23
  • 2018-02-15
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
相关资源
最近更新 更多