原文:鏈接器,符號解析與重定位-概念

http: blog.chinaunix.net uid id .html 鏈接器必須對這些可重定位目標文件完成兩個主要任務: 符號解析。將每個符號引用剛好和一個符號定義聯系起來。 重定位。鏈接器把每個符號定義與一個虛擬地址聯系起來,然后修改所有對這些符號的引用,使得它們指向這個存儲位置,從而重定位這些節。 符號分為四類: 導出符號 export,本地符號 , 導入符號 import,外部符號 , ...

2017-05-19 17:33 0 1891 推薦指數:

查看詳情

符號解析定位

定位 編譯並不知道引用符號的真正地址,暫時用臨時的假地址代替着,把真正的地址計算工作留給了鏈接鏈接可以根據符號的地址對每個需要定位的指令進行地位修正。 定位表 在ELF文件中,有一個叫定位表的結構專門用來保存這些魚定位相關的信息。對於可定位的ELF文件來說,它必須包含有 ...

Wed Mar 06 03:27:00 CST 2019 0 749
符號解析定位

1.定位 在完成空間與地址的分配步驟之后,鏈接就進入了符號解析定位的步驟,這也就是靜態鏈接的核心作用; 在分析符號解析定位之前,首先讓我們來看看“a.o”里面是怎么使用這兩個外部符號,也就是說我們在“a.c”源程序里面使用了“shared”變量和“swap”函數,那么編譯 ...

Fri Jun 01 01:41:00 CST 2018 0 1303
基本修養實戰篇(四) 鏈接符號解析定位

這次我們來看一個新的例子 a.c的內容如下: b.c的內容如下: gcc -c a.c -o a.o gcc -c b.c -o b.o 回顧之前的內容,我們先看一下a.o中的符號表: readelf -a a.o Bind類型為LOCAL ...

Tue Oct 19 02:17:00 CST 2021 0 134
解析定位

1.創建一個用來試驗的目標dll 頭文件: 實現: 該dll提供一個函數hell ...

Sat Nov 09 21:00:00 CST 2019 0 521
定位鏈接腳本

1.為什么需要定位     位置無關編碼(PIC,position independent code):匯編源文件被編碼成二進制可執行程序時編碼方式與位置(內存地址)無關。  位置有關編碼:匯編源碼編碼成二進制可執行程序后和內存地址是有關的。   我們在設計一個程序時,會給這個程序指定一個 ...

Tue Jan 24 09:05:00 CST 2017 0 1703
ELF 動態鏈接 - so 的 定位

動態鏈接下,無論時可執行文件還是共享對象,一旦對其他共享對象有依賴,也就是所有導入的符號時,那么代碼或數據中就會有對於導入符號的引用。而在編譯時期這些導入符號的確切地址時未知的。只有在運行期才能確定真正確切的地址 靜態編譯下,這些未知的地址會被編譯一一修正。 對於動態鏈接 ...

Sat Apr 28 06:39:00 CST 2018 0 970
淺談編譯過程和符號定位問題

操作系統根據具體指令從硬件上分配內存處理程序段。以下從預編譯,編譯,匯編,鏈接,來簡單的說一下程序的編譯 ...

Thu Jun 30 20:44:00 CST 2016 0 2141
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM