2009-09-05 113 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