为什么需要在 LFS 中安装 binutils 和 gcc 两次?

sam*_*sam 4 lfs

我遵循了LFS文档。

我不太明白为什么它需要 2 次编译。

我猜:

我们需要目标系统的glibc,如果用host的gcc编译,就不能再和host分离了。所以我们需要先构建新系统的binutils 和gcc 来构建目标系统的glibc 让glibc 连接目标系统的binutils 和gcc。但是binutils和gcc的第一遍是使用host的glibc,所以我们需要编译target的binutils和gcc的第二遍。

这些对吗?

我有什么遗漏或误解吗?

谢谢~

Ign*_*ams 5

正确的。正如Dragon Book 所解释的,您必须首先构建一个为目标构建的主机二进制文件,然后使用它来构建一个为目标构建的目标二进制文件。