LinuxSir.cn,穿越时空的Linuxsir!

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

第六章 第二次调整工具链出错

[复制链接]
发表于 2010-1-27 16:56:53 | 显示全部楼层 |阅读模式
cc dummy.c -Wl,--verbose &> dummy.log
然后
readelf -l a.out | grep ': /lib'
提示没有文件a.out
我直接运行cc dummy.c,有出错信息:
/tools/lib/gcc/i686-pc-linux-gnu/4.0.3/../../../../i686-pc-linux-gnu/bin/ld: warning: ld-linux.so.2, needed by /lib/libc.so.6, not found (try using -rpath or -rpath-link)
/lib/libc.so.6: undefined reference to `_rtld_global@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `__libc_stack_end@GLIBC_2.1'
/lib/libc.so.6: undefined reference to `_rtld_global_ro@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `___tls_get_addr@GLIBC_2.3'
/lib/libc.so.6: undefined reference to `_r_debug@GLIBC_2.0'
/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_PRIVATE'
collect2: ld returned 1 exit status

继续运行下面的测试程序:
grep -o '/usr/lib.*/crt[1in].* .*' dummy.log
我的是正常的
然后grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
我的就是:
SEARCH_DIR("/tools/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/lib")
SEARCH_DIR("lib");
最后一个lib路径错误了,我怀疑就是这里出错了导致cc失败,
宿主是LiveCD,前面一直都是正确的,可能是哪里输入/lib的时候输入错了,应该怎么修正这个错误?
发表于 2010-1-27 17:03:49 | 显示全部楼层
惭愧,我解决不了,但是我建议楼主第一遍搞的时候先 复制粘贴。
启动 ssh服务。
然后在windows下远程登录 ssh secure shell 远程登录。编译LFS系统。具体方法请google
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-27 17:07:44 | 显示全部楼层
额,我大部分命令是复制粘贴的……小部分是自己输入的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-27 22:34:03 | 显示全部楼层
解决了,在/etc/ld.so.conf 后面添加一个额外的/lib,可能是编译ld的时候输入错误了,或者是老版本数的一个bug??
回复 支持 反对

使用道具 举报

发表于 2010-6-22 08:04:52 | 显示全部楼层
LZ能讲的更详细一点吗?我也碰到这个问题了。

/etc/ld.so.conf实在glibc编译的时候创建的,在哪个地方在添加一个额外的/lib呢?

另外执行grep -B1 '^ /usr/include' dummy.log,没有输出,不知到兄弟碰到没?
回复 支持 反对

使用道具 举报

发表于 2010-7-1 23:26:27 | 显示全部楼层
没有管“lib”,继续安装其余包,最终还是可以正确安装好LFS并正常启动运行。
回复 支持 反对

使用道具 举报

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

本版积分规则

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