4

请指导我完成构建足以构建可启动 linux 映像的基本工具链所需的步骤,并讨论为什么应该按照您建议的方式完成工作

指向现有文档的指针也非常感谢。我从 Scratch 开始研究 Linux,并且有一些使用发行版特定工具构建 Gentoo 映像的经验。我还查看了用于为嵌入式设备构建交叉编译工具链的各种工具的文档。

然而,这些工具的文档只讨论了实际使用这些工具编译工具链,而不是它们是如何做到的,以及为什么没有不同。通常这些资源还提到其他工具的做法不同(当然更糟),所以我觉得简单地阅读源代码只会帮助我了解给定的构建工具是如何工作的,而不是提供对实际过程的洞察力,这是可能的变化。

因此,我对有关自动构建工具链的工具的讨论不太感兴趣,而是对如何手动进行的注释说明感兴趣。另请注意,现在我计划在同一台机器上构建和运行映像,因此我不需要交叉编译。但我仍然对有关交叉编译的讨论感兴趣,但重点可能应该在其他地方。还需要什么以及构建可启动映像不是这个问题的一部分 - 只是构建工具链来实现它。

为了帮助您了解我的立场,我有一些问题和一些我相信知道的事情:我知道即使在本地构建时,将用于构建图像的工具链与主机的工具链分开也很重要,以避免链接到库以后可能不可用(其他原因?)。我不知道相应地调整环境变量是否足够(哪个?)或者是否最好构建工具链、chroot 和重建(我从重建中获得什么?)。如果做前者会出什么问题?我已经读过两次构建 gcc(使用第一个构建第二个)是矫枉过正的,因为它的构建系统无论如何都会这样做。如果是这样,它可以检测到两个构建中的哪些差异,为什么它们很重要?如果两个构建不同,那么肯定会出现问题,如果它们不同,该怎么办。正确完成交叉编译是否会产生与本机完成时完全相同的二进制文件?如果不是,为什么这毕竟还不错,而且许多项目总是选择这种方式?

4

1 回答 1

1

您应该看看LinuxFromScratch,正如其名称所示,它旨在从头开始构建一个可以工作的 Linux 系统(包含关于工具链的完整部分)。

于 2011-06-14T09:41:03.700 回答