开始决定按照LFS6.4版本进行DIY,后来在编译到binutils第一个软件包时就遇到了问题,首先是上一篇文章中提到的关于缺少makeinfo的错误,后来编译通过了,但是安装始终无法成功。最后决定先从6.3版本开始尝试。下面是6.3编译过程遇到的问题。
我编译6.3版本时是参考下面两篇文章进行的
1.这是遇到的第一个问题,在我第一次编译glibc时,当我执行完
../glibc-2.5.1/configure --prefix=/tools \
--disable-profile --enable-add-ons \
--enable-kernel=2.6.0 --with-binutils=/tools/bin \
--without-gd --with-headers=/tools/include \
--without-selinux
这一步时,没有按照预期的在glibc-build目录下生成Makefile等文件,而只是生成了一个config.log文件,
而且出现这样的错误提示:configure: error: Need linker with .init_array/.fini_array support.
我怀疑是由于我在安装完gcc之后按照执行了
rm -rf gcc-build
rm -rf gcc-4.1.2造成的,但是想一下这些文件是和后边的毫不相干的,在网上找有人说这是由于binutils版本太低造成的
所以很有可能是前面编译binutils时出现了问题。同时看到在手册中并没有在安装完gcc之后进行删除操作,我怀疑这有可能
是另外的原因。因此我只好从头来过,这次我按照手册进行编译,问题解决了。具体是由于什么原因,暂时还不知道,现记在这里。
2.在第一次编译到glibc时按照官方手册上的说明我在make完成之后进行了make check这时出现了两处错误。开始我怀疑是编译出错了,于是就寻找解决方法,后来看到牛人的文章发现这时进行make check是不合适的。在我重新make完成之后我就直接跳过文档中的make check这步,直接进行下面的install部分,发现可以正常安装
3.编译expect5.43时出现错误。
执行完
./configure --prefix=/tools --with-tcl=/tools/lib \
--with-tclinclude=/tools/include --with-x=no
之后出现错误提示:
/tools/lib directory doesn't contain tclConfig.sh
这可能是由于前边编译tcl8.4.15出错。解决方法:重新编译tcl8.4.15
然后重新编译tcl8.4.15,发现在执行完
./configure —prefix=/tools 的最后一行就是Creating
tclConfig.sh。看来就是前边编译tcl时出了问题。
4.在第二此编译gcc的时候,make没有发现错误,但是执行make -k check时
出现错误提示:Target `check' not remade because of errors.
我决定现忽略这个问题,直接进行make install。make install能够正常
执行。
安装完成之后
再次测试工具链的调整,以确保刚刚编译的gcc正确工作
echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep 'tools'
如果输出大致如下
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
则表示调整成功,因为所有的库已经连接到了/tools/lib下。
rm -rf a.out dummy.c
发现此时测试也能够通过。
5.编译bash-3.2执行make时出现错误提示:缺少yacc工具。解决方法:
sudo apt-get install bison
然后重新解压bash-3.2.tar.gz从头再来,问题解决!
关于yacc的问题可以在这里找到介绍6. 执行到第六章的时候开始安装
Linux-2.6.27.4 API Headers出现下面的错误提示:
root:/sources/linux-2.6.22.5# make mrproper
/sources/linux-2.6.22.5/scripts/gcc-version.sh: line 11: /tools/bin/gcc: No such file or directory
/sources/linux-2.6.22.5/scripts/gcc-version.sh: line 12: /tools/bin/gcc: No such file or directory
make: gcc: Command not found
这可能是第五章调整工具链时出现了问题。
阅读(4234) | 评论(0) | 转发(0) |