LinuxSir.cn,穿越时空的Linuxsir!

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

关于工具链的疑惑

[复制链接]
发表于 2006-9-23 22:31:58 | 显示全部楼层 |阅读模式
我是一个linux的新手,前一段时间做了一下LFS,不过只是按照手册的步骤一步步的做.
现在看了些关于linux下动态库连接的书,回过头来看LFS的过程,比以前盲目的cp手册有了一定的进步,不过还是有一个疑问:

就是在第五章中,已经编出了一个工具链,这个工具链是自依赖的,所有的程序都动态连接到它的glibc上,ld在连接时也经过了调整,优先搜索/mnt/lfs/lib.那么这个工具链和最终系统中的该部分有什么区别呢?也就是说,如果我chroot到该目录下,编译安装各种软件包,编译内核写各种conf,是否能产生一个可以启动的系统?
如果能,那为什么还要有三遍的gcc,如果不能,为什么?我在精华区中看了论坛中几位高手的大作,但大家好象都没有解释过手册中做法的必要性.

希望大家帮忙,谢谢.
发表于 2006-9-23 23:44:26 | 显示全部楼层
Post by gflfof
如果我chroot到该目录下,编译安装各种软件包,编译内核写各种conf,是否能产生一个可以启动的系统?


可以

Post by gflfof
如果能,那为什么还要有三遍的gcc,如果不能,为什么?我在精华区中看了论坛中几位高手的大作,但大家好象都没有解释过手册中做法的必要性.


binutils 和 gcc 第一遍链接到原来系统的,只是为了编译 /tools 里的 glibc ,chroot 就不能用了,这是为了纯净,你也可以用原来系统的 gcc 和 binutils 编译 /tools 里的 glibc

binutils 和 gcc 第二遍是链接到 /tools 里的 glibc,是 chroot 后能用的

binutils 和 gcc 第三遍才链接到 $LFS/usr ,是最后的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-24 11:47:24 | 显示全部楼层
楼上所说的我也理解,我就是要问工具链和最终系统中的该部分有什么区别?
为什么不能取消工具链这一步,我第一遍编完的glibc直接放到/mnt/lfs/usr中,第二遍的gcc和binutils直接连到该库.然后编出的各种软件也都连到其上,以后系统直接用第二遍的gcc和binu,不用第三遍的gcc和第二遍的glibc了,这样做有何不可?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-24 12:12:18 | 显示全部楼层
工具链中的各种软件与宿主系统到底还有什么样的关联?链接库的代码不是宿主系统的,编译连接工具也不是宿主系统的,难道就是因为像aladdinlamp 在<LFS工具链构造学习笔记>中所说是环境变量的问题吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-24 14:33:57 | 显示全部楼层
哦,我明白了。
多谢。
回复 支持 反对

使用道具 举报

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

本版积分规则

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