2009-09-05 114 views
1

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

Shared library Strip是什么意思?

编辑: - 我想知道当共享库加载到内存中时共享库是如何工作的。\ 当函数让Fun()从库中已定义的应用程序中调用时。那么这种联系如何发生。我希望现在清楚。

+0

你能否澄清你的问题 - 我不确定你到底在问什么。 – DaveR 2009-09-05 13:43:29

回答

4

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

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

+0

谢谢你真的很有帮助。 – Arpit 2009-09-14 07:00:46

+0

John R. Levine在另一本书[Linkers&Loaders](http://rads.stackoverflow.com/amzn/click/1558604960)中可以找到另外一个非常深入的解释,尽管非自由的解释。 – alanc 2012-08-18 06:29:58