+ -
当前位置:首页 → 问答吧 → 关于GCC等的多次编译

关于GCC等的多次编译

时间:2009-07-03

来源:互联网

大家好,我刚刚接触LFS不久...

看了金先生的手册翻译(基于LFS手册6.2) 也看了豹哥的诸多大作(包括“手把手” “反向分析”等)

但有一个问题我始终没法理解,也让我这两天很头疼:
为什么binutils、gcc等需要编译多次呢?(豹哥实在不好意思,你的那个反向分析我没看太懂)

作者: clos   发布时间: 2009-07-03

我的理解是这样的
1。源系统的GCC借用源系统的glibc制作一个残疾GCC(内部GLIBC库是残疾的)
2。此残疾GCC可以编译出纯净的目标系统glibc库 因为制作GLIBC不会用到残疾GCC中的残疾部分(源系统的GLIBC库)
3。源系统的GCC加目标系统的glibc库制作出 完美GCC(内部GLIBC库是目标系统的库)
4。用此完美GCC编译出完美binutils

作者: heuyck   发布时间: 2009-07-06

我的在第三次编译GCC4.1.2时就出错,现在还找不到原因

作者: yjdwbj   发布时间: 2009-07-09

为何不直接用源系统的gcc编译出目标系统的glibc,再用源系统的gcc和目标系统的glibc编译新的gcc,此gcc就可编译其它新东西。这样不是很直接吗?

作者: ch_fb   发布时间: 2009-07-09

引用:
作者: ch_fb
为何不直接用源系统的gcc编译出目标系统的glibc,再用源系统的gcc和目标系统的glibc编译新的gcc,此gcc就可编译其它新东西。这样不是很直接吗?
如果软件的版本都不变,只是为了优化编译的话,个人认为可以在源系统上编译。

作者: hritian   发布时间: 2009-07-10

引用:
作者: hritian
如果软件的版本都不变,只是为了优化编译的话,个人认为可以在源系统上编译。
这是极高危的动作,请先做好系统备份才行事!

作者: d00m3d   发布时间: 2009-07-22

引用:
作者: heuyck
我的理解是这样的
1。源系统的GCC借用源系统的glibc制作一个残疾GCC(内部GLIBC库是残疾的)
2。此残疾GCC可以编译出纯净的目标系统glibc库 因为制作GLIBC不会用到残疾GCC中的残疾部分(源系统的GLIBC库)
3。源系统的GCC加目标系统的glibc库制作出 完美GCC(内部GLIBC库是目标系统的库)
4。用此完美GCC编译出完美binutils
heuyck兄这段话非常形象啊

作者: slackcode   发布时间: 2009-07-22

引用:
作者: heuyck
我的理解是这样的
1。源系统的GCC借用源系统的glibc制作一个残疾GCC(内部GLIBC库是残疾的)
2。此残疾GCC可以编译出纯净的目标系统glibc库 因为制作GLIBC不会用到残疾GCC中的残疾部分(源系统的GLIBC库)
3。源系统的GCC加目标系统的glibc库制作出 完美GCC(内部GLIBC库是目标系统的库)
4。用此完美GCC编译出完美binutils
提出个疑问啊,你提到“4。用此完美GCC编译出完美binutils”,但是LFSbook上,第二阶段是先编译的binutils,再编译GCC。怎么解释呢?

作者: greatsnows   发布时间: 2009-08-02

在LFS原理一文中有提到,其实工具链的GCC可以先用host系统先编译glibc再一次编译好GCC的,但LFS不这么做,主要是从稳定并与host系统断开任何可知及不可预测的连系。

作者: tlze   发布时间: 2009-08-04