連結器與載入器與執行檔格式
與靜態函式庫(.a檔)一起連結時,連結器會嵌入執行檔的是下列何者?
- A函式庫中的所有目的檔
- B只有函式庫的檔名,不嵌入程式碼
- C函式庫中的目的檔裡,只有解決未定義參照所需的那些
查看答案與解析
正確答案:C. 函式庫中的目的檔裡,只有解決未定義參照所需的那些
靜態函式庫是將許多目的檔整合成一個的封存檔。連結器只會從封存檔中取出定義了尚未找到定義之符號的目的檔,並將其嵌入。因此即使是像標準函式庫這樣包含許多函式的函式庫,執行檔也只會增加所用函式的份量。
- A. 全部放入的話,執行檔會無謂地變大。
- B. 只記錄名稱的是動態連結。
- C. 正確。沒用到的部分不會放入。