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

主要作業系統所使用的執行檔格式組合,下列何者正確?

  1. ALinux為PE,Windows為Mach-O,macOS為ELF
  2. BLinux為ELF,Windows為PE,macOS為Mach-O
  3. C所有作業系統都使用ELF
查看答案與解析

正確答案:B. Linux為ELF,Windows為PE,macOS為Mach-O

執行檔的格式依作業系統而定。Linux、BSD以及許多嵌入式裝置使用ELF,Windows使用.exe或.dll的PE(Portable Executable),macOS與iOS使用Mach-O。其內部的概念(程式碼與資料的區域、符號、重定位、動態連結的資訊)相似,但由於格式不同,即使是針對相同的CPU,作業系統不同,執行檔也無法直接運作。

  • A. 組合被調換了。
  • B. 正確。格式依作業系統而異。
  • C. Windows與macOS是不同的格式。
練習這個領域 前往領域頁面

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

  1. 當遞迴過深而超過堆疊的上限時,在Linux等系統上一般會發生的事,下列何者正確?
  2. 在C語言中,關於未寫初始值的區域變數與全域變數,開始使用時的值,下列何者正確?
  3. 反覆進行malloc與free後,儘管剩餘記憶體的總量足夠,卻無法一次配置大塊區域。這種現象稱為什麼?
  4. 建置共用函式庫時,只公開要從外部使用的函式,並將內部函式的符號可見性(visibility)設為「hidden」,其優點下列何者正確?
  5. 關於C++中全域物件的建構函式在main之前執行的機制,下列何者正確?

這個領域的比較