2009年4月26日星期日

lfs手记之二

在进行到6.14第三次编译gcc的时候,重试了4次,两次是说“我找不到/lib/cpp这个文件呀“,我ln -sv /tools/bin/cpp /lib把第二次编译出的cpp链接到/lib/cpp之后,倒没有这个问题了,但是不断的跳出“我找不到stdio.h这个头文件呀“等等一大堆。但是经我的诊断,/usr/include中确实存在这个头文件,而
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
grep -B1 '^ /usr/include' dummy.log
又表明确实是在/usr/include里找头文件的。于是只有怀疑gcc的源文件有问题,仔细想了一下,第二次编译gcc时对源文件进行了修改,而第三次编译时图省事直接用的原来的源文件夹。虽然gcc, binutils和glibc都是在源文件夹以外的文件夹中编译的不存在编译污染问题,但是直接修改了源文件的话还是可能会导致错误的。于是删除原来的gcc-4.3.2/文件夹,重新解压,make通过。
总结:对于源文件夹的处理,个人有以下建议:
1. 只进行了patch的可以不管
2. 如果对源文件进行了其它修改,要么事先有备份,最简单的还是删除&重新解压
3. 如果在源文件夹中直接configure和make的,而又没有修改源文件,可直接make clean而不用删除文件夹
4. LFS手册的建议还是要采纳,其实手册开始写了建议安装完成一个包之后就把源文件删除,我没有动脑子而大胆采用省时做法,结果适得其反

没有评论: