|
发表于 2006-3-2 20:56:57
|
显示全部楼层
思考的很深入啊,有些问题也没怎么想过,不过既然你提出来了就分析一下吧.
问题一:没有指定LIB_PATH,我想你的意思是想问在编译binutils的时候没有指定LIB_PATH会导致编译出来的ld到哪里去找库,我想可能/lib:/usr/lib就是默认的路径.
问题二:应该是先找LIB_PATH再到ld.so.conf中的路径去找,第一次编译glibc的时候/tools/lib中还没有任何库文件,所以当然要到/lib和/usr/lib中去找,而当编译安装完glibc后/tools/lib就有东西了,这时候再编译任何程序都应该到/tools/lib中,所以也就是在安装完glibc后就立刻调整工具链的原因,调整完后在编译任何程序都是到/tools/lib中去找了,不再需要/lib和/usr/lib了,这里没有任何问题.
至于在指定--prefix=/usr会到/lib中找,那是因为LIB_PATH中有/lib这个路径.
问题三:虽然我没怎么研究过编译原理,但我觉得应该不是把偏移编译到可执行文件中的,至少不会是绝对偏移,所以后面的问题也就不存在了.
以上是我个人分析,不一定正确. |
|