2010-02-22 132 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

相关问题