靜態鏈接中有一個專門的段叫符號表 -- “.symtab”(Symbol Table), 里面保存了所有關於該目標文件的符號的定義和引用。
動態鏈接中同樣有一個段叫 動態符號表 -- “.dynsym”(Dynamic Symbol) , 但.dynsym 相對於 .symtab 只保存了與動態鏈接相關的導入導出符號。
so中同樣有.symtab,其中保存着所有的符號
.symtab 和 .dynsym 都有相對應的輔助表
比如 :
.symtab -> .strtab(String Table)符號字符串表
.dynsym -> .dynstr(Dynamic String Table)動態符號字符串表
在模塊加載時,加載器收集每個加載進來的模塊的動態符號表,組成全局的動態符號表,只有當依賴這個模塊的其他模塊發起重定位時,可以查詢這個表來獲取確定的地址。