我正在阅读Linux From Scratch 11.0 这本书。在III. 构建 LFS 跨工具链和临时工具,ii。Toolchain Technical Notes,有一点关于加拿大交叉编译的内容。我不明白为什么需要 3 个阶段和 3 台机器才能达到最终结果。本文假设我们从计算机 A 和一个在 A 上运行并为 A 生成二进制文件的编译器开始。那么为什么我们不直接使用该编译器来构建一个在 C 上运行并为 C 构建二进制文件的编译器呢?为什么会有这么多麻烦,构建一个在 A 上运行但为 B 构建的编译器,然后是在 B 上运行但为 C 构建的编译器,最后是在 C 上运行并为 C 构建的编译器?
我还在 Wikipedia 上找到了一篇关于它的文章 - https://en.wikipedia.org/wiki/Cross_compiler。