为什么第六章linux从头开始要重新安装gcc

为什么第六章linux从头开始要重新安装gcc

我正在尝试遵循 LFS 书,但无法解决这个问题:我们在目标分区的第 5 章中构建了 GCC 编译器,为什么在进入 chroot 模式后我们还要再次这样做?有什么意义,为什么不使用以前的版本。 GlibC 也是如此。

答案1

我相信构建chroot会检查构建 GCC 和 GlibC 的所有辅助文件和程序是否存在,并且独立于“构建系统”。通常,编译编译器一点也不简单。我相信 GCC 会需要bison各种flex头文件、配置文件以及谁知道还有什么。构建chroot只是构建系统(不是 LFS)和最终 LFS 安装之间的中间步骤,最终 LFS 安装应该是自托管的。

由于 GCC 的运行时环境很复杂(PATH以及LD_LIBRARY_PATH其他配置项),因此初始 GCC 编译器也可能会泄漏一些副作用。我找不到这篇论文,但我记得可能需要用上一代编译器来编译多达 5 代编译器才能让所有奇怪的错误和依赖关系浮出水面。

答案2

当您输入 a 时,这意味着您有一个空系统,没有安装任何东西,也没有工作,因此您需要工具来编译您在第 5 章中所做的事情。这也是您给出指向的chroot原因工具目录。chroot/tools/bin/envPATH

第 6 章只是通过下载软件包并安装它们来填充 chroot,包括gcc使用第 5 章中的工具编译它们。

相关内容