2016-11-11 114 views

回答

1

維基百科:

ELF是可執行文件,目標代碼, 共享庫的共同標準文件格式,和核心轉儲。

無論你使用本地還是交叉編譯器,與如何生成一個精靈文件無關。一個交叉編譯器只是考慮到你正在編譯一個不同於你目前用來編譯的硬件平臺。

2

編譯器的工作是理想地從較高轉換到較低。從C到彙編語言從JAVA到字節碼等文件輸入,文件輸出。通常人們不會看到編譯器通常(但不是一個強硬而快速的規則)將彙編語言(文本)輸出到彙編器然後變成elf或coff或其他東西。無論你需要一種文件格式來存儲信息,當信息變成二進制(機器碼)時,你需要一些文件格式,任何文件格式。編譯器的作者/設計者可以選擇他們想要支持的文件格式,elf足夠通用並且運行良好,所以不是一個不錯的選擇。

與編譯器完全無關,它只是一個文件格式,可以用來存儲彙編器和鏈接器的輸出。你必須有一些文件格式。

它可能是一個工具鏈選擇有不同的默認文件格式取決於目標或平臺的組合,在Windows上使用可能使.EXE例如GNU文件相同的GNU源可以選擇精靈作爲默認文件格式編譯爲Linux編譯器。自然而然的擴展是,gnu工具可能有一個不同的默認文件格式,用於目標處理器和/或平臺的其他組合。

精靈特別是有點通用,某些標記和功能可能被目標處理器和平臺的組合使用,所以你可能會看到不同的精靈風格。只要看看使用objcopy以英特爾十六進制格式,輸出會根據目標處理器類型而變化。

+0

非常感謝你... – sivaraj