求助:LFS6.2进行到5.7调整工具链时出错
时间:2007-12-17
来源:互联网
这是我第一次弄LFS版本是6.2,使用vmware5.0进行实验.前面做得都很顺利,但进行到5.7节:调整工具链时出错
从现在开始,所有程序都将连接到 /tools/lib 中的库文件。
下面要做的是修正 GCC 的"specs"文件,使它指向新的动态连接器。一个简单的 sed 命令就能做到:
SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs &&
gcc -dumpspecs > $SPECFILE &&
sed 's@^/lib/ld-linux.so.2@/tools&@g' $SPECFILE > tempspecfile &&
mv -vf tempspecfile $SPECFILE &&
unset SPECFILE
输完以上命令时回车有如下错误:
bash:$SPECFILE:ambiguous redirect
此时使用的时lfs用户在 /mnt/lfs/sources/glibc-build 目录下.
echo $PATH输出为: /tools/bin:/bin:/usr/bin
做了如下测试:
echo 'main(){printf("hello world!\n");}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'
没有错误也没输出语句.运行a.out可以打印出字符:hello world!
以下命令:
echo 'main(){printf("hello world!\n");}' > dummy.c
gcc dummy.c
readelf -l a.out | grep ': /tools'
结果和上面一样.
现在问题不知道出在哪里,有谁可以帮我看一下,还要什么信息请告知我,我第一时间提供,谢谢~!
从现在开始,所有程序都将连接到 /tools/lib 中的库文件。
下面要做的是修正 GCC 的"specs"文件,使它指向新的动态连接器。一个简单的 sed 命令就能做到:
SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs &&
gcc -dumpspecs > $SPECFILE &&
sed 's@^/lib/ld-linux.so.2@/tools&@g' $SPECFILE > tempspecfile &&
mv -vf tempspecfile $SPECFILE &&
unset SPECFILE
输完以上命令时回车有如下错误:
bash:$SPECFILE:ambiguous redirect
此时使用的时lfs用户在 /mnt/lfs/sources/glibc-build 目录下.
echo $PATH输出为: /tools/bin:/bin:/usr/bin
做了如下测试:
echo 'main(){printf("hello world!\n");}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'
没有错误也没输出语句.运行a.out可以打印出字符:hello world!
以下命令:
echo 'main(){printf("hello world!\n");}' > dummy.c
gcc dummy.c
readelf -l a.out | grep ': /tools'
结果和上面一样.
现在问题不知道出在哪里,有谁可以帮我看一下,还要什么信息请告知我,我第一时间提供,谢谢~!
作者: ssiaqgpv 发布时间: 2007-12-17
补充:没有找到specs文件,看了youbest兄的LFS速成手册上提到:工具链的调整方法有好几种,而且不同版本GCC的specs可能会有不同,但实际上都是把specs文件中的/lib/ld-linux.so.2替换成了/tools/lib/ld-linux.so.2,所以即使有些文章在调整工具链上的命令和LFS手册上的不一样也不用太奇怪,当然手工直接编辑specs文件也可以。但如果是GCC4.0.x的话可能不会自动产生specs文件,这时候可以先生成specs文件然后在修改
想问一下如何生成specs文件,生成后一般在哪个目录下呢?
想问一下如何生成specs文件,生成后一般在哪个目录下呢?
作者: ssiaqgpv 发布时间: 2007-12-17
解决办法:
查看/mnt/lfs/tools/lib/gcc/i6860-pc-linux-gnu/4.0.3/specs,发现根本没有这个文件。
解决办法是执行"gcc -dumpspecs>/mnt/lfs/tools/lib/gcc/i6860-pc-linux-gnu/4.0.3/specs".
然后手动的编辑 specs 文件,只要把所有的"/lib/ld-linux.so.2"都替换成"/tools/lib/ld-linux.so.2"就行了。
查看/mnt/lfs/tools/lib/gcc/i6860-pc-linux-gnu/4.0.3/specs,发现根本没有这个文件。
解决办法是执行"gcc -dumpspecs>/mnt/lfs/tools/lib/gcc/i6860-pc-linux-gnu/4.0.3/specs".
然后手动的编辑 specs 文件,只要把所有的"/lib/ld-linux.so.2"都替换成"/tools/lib/ld-linux.so.2"就行了。
作者: szjrabbit 发布时间: 2008-03-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28