交叉编译Linux时的编译顺序

交叉编译Linux时的编译顺序

我一直在关注 Linux From Scratch 这本书,只是需要填补我对交叉编译 Linux 的理解上的一些空白。

如果已经为目标机器构建了工具链,那么交叉编译所需的一般作业顺序是否如下?

  • 为目标创建文件系统层次结构
  • 为目标机器编译标准库并安装到目标的文件系统中
  • 使用之前为目标编译的标准库为目标机器编译内核
  • 从目标的文件系统创建图像
  • 在目标机器上运行镜像

答案1

您可以从“独立”交叉编译器开始,即没有操作系统集成。这仅适用于 C 前端。

这样,您就可以编译内核和 C 库(需要内核头文件)。

构建 C 库后,您可以编译具有完整操作系统集成和语言支持的交叉编译器。

对于 gcc,通常需要更多的来回操作,因为共享 libgcc 应该与共享 libc 链接,并且共享 libc 可能需要与共享 libgcc 链接,但这在很大程度上是一种优化,可以节省一些时间千字节和就地升级期间的一些工作,因为它从 libc 中删除了所有编译器依赖项(这允许它被重用)。

相关内容