2016-07-07 58 views
-2

所以我目前正在對ELF格式進行一些研究。我想確認一些我認爲正確的事情。有關ELF格式的幾個愚蠢的問題

ELF是一種格式,它代表可執行和可鏈接的格式。在Linux中,一切都是以ELF格式。

當使用gcc編譯帶有-c和-fPIC文件的代碼時,它將代碼轉換爲ELF格式的.o文件。

如果我說.o/.so和linux的可執行文件都是ELF文件,這是正確的嗎?或者ELF是.o/.so文件中的東西?換句話說,ELF是.o/.so的一個子集還是ELF基本上是整個.o/.so?

我想確認一下,因爲我想確保我明白這一點。對不起,問一個愚蠢的問題。

+2

這不屬於Stack Overflow –

+3

標題就是你如何銷售你的問題。順便說一句,這很難得到好回答 – Amadeus

+1

@CharlieFish,爲什麼這不屬於SO? – Amadeus

回答

1

如果我說.o/.so和linux可執行文件是ELF文件,那麼它是正確的嗎?或者ELF是.o/.so文件中的東西?換句話說,ELF是.o/.so的一個子集還是ELF基本上是整個.o/.so?

是的。對象文件(.o),共享庫(.so)和可執行文件是四種ELF文件中的三種。 (第四種類型是核心文件 - 一個崩潰進程狀態的轉儲,有時用於驗屍調試。)

所有四種類型使用相同的一般格式,但會有一些特定於它們的類型的差異。例如,可執行文件通常會有一個入口點,而目標文件和共享庫則不會。