如何编译GCC编译器以便我可以将整个过程转移到另一个系统并使用该程序?我也不介意提取其他文件,但有没有办法收集所有必需的系统库? OS和Arch将在不同的系统中保持不变,但是一个可能包含Slackware,而另一个包含Debian。
答案 0 :(得分:0)
不要尝试将其构建为静态二进制文件。那是没有希望的。
相反,请研究如何构建交叉编译器。然后为您的GCC做同样的事情,除非您将构建相同的CPU架构。将你的binutils构建到/ opt / mygcc,将你的GCC构建到/ opt / mygcc中,如果你也想在那里构建你自己的系统库。
忽略默认系统库的一个主要问题是,您针对某些其他库构建的程序可能无法在系统上运行。
即使您构建静态二进制文件,也可能最终得到一个不能在较旧的OS内核上运行的二进制文件。例如,构建在NPTL Linux内核上的pthread不能在2.2或2.4内核上运行。