連結器與載入器與執行檔格式
在Linux等系統中啟動動態連結的程式時,動態連結器(ld.so等)的功用,下列何者正確?
- A編譯原始碼以產生機器碼
- B尋找所需的共用函式庫並載入記憶體,結合符號後再讓程式開始執行
- C程式結束後,整理磁碟的空閒區域
查看答案與解析
正確答案:B. 尋找所需的共用函式庫並載入記憶體,結合符號後再讓程式開始執行
動態連結的執行檔中記載了要使用的動態連結器的位置,作業系統載入程式後,會先把處理交給動態連結器。動態連結器會尋找並載入所需的共用函式庫,進行重定位與符號的結合,然後將控制權移交給程式的入口。使用dlopen在執行中額外載入函式庫的處理,也是由動態連結器負責。
- A. 編譯是編譯器的工作。
- B. 正確。負責執行時的連結。
- C. 與磁碟整理無關。