連結器與載入器與執行檔格式

關於靜態連結,下列說明何者正確?

  1. A將所使用函式庫的程式碼複製到執行檔中加以結合
  2. B每次執行程式時,載入函式庫並加以結合
  3. C不使用函式庫,將所有處理寫在單一原始檔中
查看答案與解析

正確答案:A. 將所使用函式庫的程式碼複製到執行檔中加以結合

靜態連結是由連結器從靜態函式庫(Linux中為.a檔)取出所需的函式,嵌入執行檔。即使執行環境中沒有該函式庫也能運作,也不需要啟動時的結合作業,但執行檔會變大,且每個使用相同函式庫的程式都各自持有一份副本。即使函式庫有錯誤修正,不重新建置也不會反映。

  • A. 正確。只靠執行檔就能運作。
  • B. 那是動態連結。
  • C. 這與是否使用函式庫是不同的問題。
練習這個領域 前往領域頁面

連結器與載入器與執行檔格式的其他題目

  1. 關於動態連結(共用函式庫)的優點,下列何者正確?
  2. 將使用動態連結的程式複製到另一部電腦上執行,卻無法啟動。最可能的原因為下列何者?
  3. 與靜態函式庫(.a檔)一起連結時,連結器會嵌入執行檔的是下列何者?
  4. 使用GNU連結器時,若像「gcc -lmylib main.o」這樣,將靜態函式庫寫在使用它的目的檔之前,有時會出現未定義參照的錯誤。下列關於其原因的敘述何者正確?
  5. 關於位置獨立程式碼(PIC),下列說明何者正確?

這個領域的比較