2010-09-18 24 views
3

這對我的程序來說不是必需的,但僅僅是出於好奇。是否有可能,最好使用gcc編譯Linux的'fat'二進制文件,包括多種體系結構,如amd64,i386,lpiapowerpc的組合?使用gcc編譯fat可執行文件

回答

2

Linux使用的可執行文件的ELF格式不支持fat二進制文件,所以目前還沒有合理的方法來做到這一點。

有一個擴展名爲ELF可用在http://icculus.org/fatelf/,使用它你需要修補各種部分(linux內核,binutils,glibc等),因爲這些變化尚未集成到主線中。

+0

我將如何去編譯一個FatELF?在未來有沒有計劃對內核進行FatELF支持? – 2010-09-18 09:07:09

+0

1.您可以閱讀http://hg.icculus.org/icculus/fatelf/file/e8010ae51530/docs的文檔,請注意,對所需的所有零件進行分條/重新編譯是相當大的工作。 2.沒有人知道這是否會使其進入主線內核。 – nos 2010-09-18 09:18:19

+0

我看到的最後一個討論使它看起來不太可能被合併到內核中。與將其融入glibc相比,這更可能成爲更容易的戰鬥。 – caf 2010-09-19 10:43:53

0

在Linux中,您不需要胖執行程序。相反,您可以編寫一個bash腳本來選擇並執行正確的二進制文件。