LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 902|回复: 4

求问 Sysroot LFS 1.1里的gcc 为何要编译第三次?

[复制链接]
发表于 2009-10-14 11:17:29 | 显示全部楼层 |阅读模式
看GCC一共编了3次

第一次是为了编译目标系统的GLIBC 只支持C语言

第二次既然已经有了目标系统的GLIBC和第一次的交叉编译工具
为什么不直接编译出适合目标系统的带C++的全功能GCC?
是因为第二次编译GCC 要使用原系统的sed bash等工具 所以认为这个GCC还是不纯净吗?

等GCC所需要的目标系统中的sed bash等工具都编译好 chroot到目标系统中
再用所有都是目标系统的工具 编译和bootstrap出第三次的GCC 就完全与原系统脱离关系了吧

我的理解是否正确?
发表于 2009-10-14 20:13:32 | 显示全部楼层
您参考的那个手册。
LFS 对不上号,
CLFS-1.x.x CLFS-svn 对不上号,
CLFS-sysroot 也对不上号。

如果是指 CLFS-sysroot,抱歉,交叉编译无法 bootstrap gcc binutils。
回复 支持 反对

使用道具 举报

发表于 2009-10-14 20:21:42 | 显示全部楼层
第二次安装的gcc是在编译工具的目录下,而第三次编译的是目标系统上的gcc
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-15 11:13:08 | 显示全部楼层
to 聚焦深空:
没说清楚 是youbest用sysroot方法做的LFS过程

to youbest:
又去仔细看了 是看错了
第二遍的GCC实际是类似交叉编译的GCC 还是运行在原系统上的 不过跟第一遍的区别就是有GLIBC库可用了

那么第二遍的GCC是为了编译<最基本的目标系统>里的sed等工具吗?
是因为第一遍的GCC没有库 不能编译它们
第三遍的GCC又需要sed等工具 也不能编译它们
这样理解对吗

谢谢解答
回复 支持 反对

使用道具 举报

发表于 2009-10-15 11:37:26 | 显示全部楼层
Post by heuyck;2036749
to 聚焦深空:
没说清楚 是youbest用sysroot方法做的LFS过程

to youbest:
又去仔细看了 是看错了
第二遍的GCC实际是类似交叉编译的GCC 还是运行在原系统上的 不过跟第一遍的区别就是有GLIBC库可用了

那么第二遍的GCC是为了编译<最基本的目标系统>里的sed等工具吗?
是因为第一遍的GCC没有库 不能编译它们
第三遍的GCC又需要sed等工具 也不能编译它们
这样理解对吗

谢谢解答

1)第一次编译是只有生成C,而第二次是不仅C,这需要GLIBC的支持。
2)我的理解,第二次的编译,已经是脱离原系统了(主要表现是或说取决于glibc,gcc ,binutlis)。
3)第一次依赖于原库,编译成静态的次C,第二次编译为动态的,依赖于新的glibc.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表