單項選擇題一個共享庫文件(.so文件)由多個模塊(.o文件)生成。在生成共享庫文件的過程中,需要對.o文件進行處理,以生成位置無關(guān)代碼。以下有關(guān)位置無關(guān)代碼(PIC)生成的敘述中,錯誤的是()。

A.模塊內(nèi)數(shù)據(jù)的引用無需動態(tài)鏈接器進行重定位,因為引用與定義間相對位置固定
B.模塊外數(shù)據(jù)的引用需要動態(tài)鏈接器進行重定位,重定位時在GOT中填入外部數(shù)據(jù)的地址
C.模塊內(nèi)函數(shù)之間的調(diào)用可用PC相對地址實現(xiàn),無需動態(tài)鏈接器進行重定位
D.模塊間函數(shù)調(diào)用需要動態(tài)鏈接器進行重定位,重定位時在GOT和PLT中填入相應(yīng)內(nèi)容


您可能感興趣的試卷

你可能感興趣的試題

1.單項選擇題以下是有關(guān)靜態(tài)鏈接和動態(tài)鏈接比較的敘述,其中錯誤的是()。

A.靜態(tài)庫函數(shù)更新后需對程序重新編譯和鏈接,而共享庫函數(shù)更新后程序無需重新編譯和鏈接
B.靜態(tài)庫函數(shù)代碼包含在可執(zhí)行目標文件中,而共享庫函數(shù)代碼不包含在可執(zhí)行目標文件中
C.靜態(tài)鏈接情況下靜態(tài)庫函數(shù)在加載時被鏈接,動態(tài)鏈接情況下共享庫函數(shù)可在加載或運行時被鏈接
D.靜態(tài)庫函數(shù)代碼包含在進程代碼段中,而共享庫函數(shù)代碼不包含在進程代碼段中

2.單項選擇題以下是有關(guān)動態(tài)鏈接及其所鏈接的共享庫以及動態(tài)鏈接生成的可執(zhí)行目標文件的敘述,其中錯誤的是()。

A.可執(zhí)行目標文件在加載或執(zhí)行時,系統(tǒng)將會調(diào)出動態(tài)鏈接器利用共享庫對其進行動態(tài)鏈接
B.生成的可執(zhí)行目標文件是部分鏈接的,也即,其中還有部分引用沒有進行重定位
C.共享庫在Linux下稱為動態(tài)共享對象(.so),在Windows下稱為動態(tài)鏈接庫(.dll)
D.可執(zhí)行目標文件由動態(tài)鏈接器對可重定位目標文件和共享庫中部分信息進行鏈接而成

4.單項選擇題以下是有關(guān)在Linux系統(tǒng)中加載可執(zhí)行目標文件的敘述,其中錯誤的是()。

A.加載器通過可執(zhí)行目標文件中的程序頭表對可裝入段進行加載
B.任何可執(zhí)行目標文件中的可裝入段被映射到一個統(tǒng)一的虛擬地址空間
C.可執(zhí)行目標文件的加載通過execve()函數(shù)調(diào)用的加載器來完成
D.在可執(zhí)行目標文件的加載過程中,其中的指令和數(shù)據(jù)被讀入主存

5.單項選擇題以下是有關(guān)在Linux系統(tǒng)中啟動可執(zhí)行目標文件執(zhí)行的敘述,其中錯誤的是()。

A.不管是哪種啟動執(zhí)行方式,最終都是通過調(diào)用execve()系統(tǒng)調(diào)用函數(shù)實現(xiàn)的
B.可以通過在一個程序中調(diào)用execve()系統(tǒng)調(diào)用函數(shù)來啟動可執(zhí)行文件執(zhí)行
C.可在CUI(命令行用戶界面)中的命令行提示符后輸入對應(yīng)的命令來啟動其執(zhí)行
D.可在CUI(命令行用戶界面)中雙擊可執(zhí)行目標文件對應(yīng)的圖標來啟動其執(zhí)行