LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: vanhu

LFS工具链构建的几个问题

[复制链接]
发表于 2006-3-4 17:50:58 | 显示全部楼层
他们不是协同工作的!
正是由于你总是想着他们有这样或者那样的联系才分不清楚的。
我分成3部分就是说他们各自是各自,根本不然。
在系统上,没有ld,程序照样可以运行!
在系统上,没有ld.so,只要是全部使用静态的,gcc照样Ok。

你把不相关的东西,联系到了一起,所以就理不清楚了!

也就是说ld和ld-linux.so.2用的是同一套搜索方法
这点我就更不同意了,他们是不同的,使用各自的搜索方法,即使有雷同又能代表什么?联系到一起没有意义:)
只要理解各自是怎么工作的就可以了,到时候再联系到一起,那就随便你了:)
回复 支持 反对

使用道具 举报

发表于 2006-3-4 18:17:49 | 显示全部楼层
glibc 用到哪个 ld,那就用那个 ld 的LIB_PATH。
我表达的有点问题,应该说是 glibc 用到哪个 binutils,那就用那个 binutils 的LIB_PATH。这个应该整体一起说,而不应该分开。
系统没有ld,是可以运行。
因为运行不是编译,不需要组合程序。
在系统上,没有ld.so,只要是全部使用静态的,gcc照样Ok。
全部使用静态,具体指的是全部什么?
静态其实就已经把库包括进去了,这个已经是最紧密的联系了。。。

至于 ld 和 ld-linux.so.2 是否有联系,要看从什么角度了。也许他们的确没联系,我在这方面没深究,不太清楚。
回复 支持 反对

使用道具 举报

发表于 2006-3-4 19:09:36 | 显示全部楼层
我只回答最后一个引用吧:)前两个引用,完全认同。

全部使用静态,具体指的是全部什么?
指的是gcc。

ld.so是所有动态连接生成的程序必须的,其中gcc就是一个。
gcc需要运行,必须有ld.so,除非gcc是被静态编译的:)
如果一个toolchain里面没有一个程序是动态编译的
那么使用gcc -static hello.c的时候,ld.so就可以不存在:)
因为没有人需要ld.so动态加载库了:)

分开看更容易说明白
回复 支持 反对

使用道具 举报

发表于 2006-3-4 19:25:17 | 显示全部楼层
静态编译的话, ld.so 的功能已经被包括进去了。。。。当然就不再需要 ls.so 了。

这个不是分开,是整合。
回复 支持 反对

使用道具 举报

发表于 2006-3-4 19:30:25 | 显示全部楼层
我是在解释他们怎么搜索路径的:)
不是功能上分开的问题。
这样去理解搜索路径的问题,更容易;)
回复 支持 反对

使用道具 举报

发表于 2006-3-4 19:55:12 | 显示全部楼层
ld:
A linker that combines a number of object and archive files into a single file, relocating their data and tying up symbol references

ld.so:
The helper program for shared library executables

ld 和 ld.so(ld-linux.so.2) 的搜索,你是具体说搜索的路径,还是搜索方法?


还有,你的观点是 可以不需要 ld.so。这个和搜索路径有啥联系?
回复 支持 反对

使用道具 举报

发表于 2006-3-4 21:11:37 | 显示全部楼层
怎么就这么难呢,俺发现俺的表达越来越成问题了:confused:
ld也好,ld.so也好,我只想说,谈到ld的时候就说ld,不要和ld.so然到一起。

ld的搜索路径,还是搜索方法,就单个的说,答案我给过了。
ld.so的搜索路径,还是搜索方法,就单个的说,答案我也给过了。

静态链接器就是静态链接器,有自己的功能,何必动辄就和人家动态链接器沾亲带故的呢?:)
动态链接器一样:)

如果开3个帖子或许更好:
[color="Red"]1.静态链接器ld的搜索路径如何设定?搜索规则是什么?
[color="red"]2.动态链接器ld.so的搜索路径如何设定?搜索规则是什么?
[color="red"]3.静态链接器ld和动态链接器ld.so有什么联系?

其中1我曾经开过帖子了:)
这么描述,应该清楚我的意思了吧?汗。。。


lz不是猜测这二者是否有同样的这和那吗?我觉得没有必要分析的时候一起来。本来没有关系的东西(其实有联系),联系起来更不好寻找答案。仅此而已:)
回复 支持 反对

使用道具 举报

发表于 2006-3-4 21:38:52 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2006-3-4 21:39:15 | 显示全部楼层
ld 搜的是 libxxx.a 或 xxx.o
ld.so 搜的是 libxxx.so

所以应该完全可以把 ld 和 ld.so 分开, 但是现在的系统中,相关的规则中还有混在一起的.

但它们用的头文件都是相同的.
回复 支持 反对

使用道具 举报

发表于 2006-3-4 21:44:28 | 显示全部楼层

re

Post by dyhml
ld 搜的是 libxxx.a 或 xxx.o
ld.so 搜的是 libxxx.so

是这样的吗?我总觉得有问题。不过不展开讨论了,毕竟和搜索路径无关:)
回复 支持 反对

使用道具 举报

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

本版积分规则

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