2010-02-22 107 views
1

如何編譯GCC編譯器,以便我可以將整個事物拖到另一個系統並使用該程序?我不介意拉其他文件,但是有沒有辦法收集所有必需的系統庫?操作系統和Arch將在不同的系統中保持不變,但其中一個可能包含另一個包含Debian的Slackware。如何將GCC編譯爲靜態二進制文件?

回答

0

不要試圖將其構建爲靜態二進制文件。這是無望的。

相反,看看如何構建交叉編譯器。然後針對您的GCC執行相同的操作,除非您將針對相同的CPU架構進行構建。將你的binutils構建到/ opt/mygcc中,將你的GCC構建到/ opt/mygcc中,如果你願意,也可以在那裏構建你自己的系統庫。

忽略默認系統庫的一個主要問題是您針對其他庫構建的程序可能無法在系統上運行。

即使您構建靜態二進制文件,您最終也可能會得到一個不會在較早的操作系統內核上運行的二進制文件。例如,構建在NPTL Linux內核上的pthread不能在2.2或2.4內核上運行。

+0

所以你建議這樣的事情? http://wiki.osdev.org/GCC_Cross-Compiler – CaCl