九九八十一难之二:
第七章:6.7.1. Installation of Linux API Headers
make header_check
CHK include/linux/version.h
HOSTCC scripts/basic/fixdep
gcc: error trying to exec ‘as’: execvp: No such file or directory
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2
Google到了最接近答案的内容:
除了对方使用LFS-7.0,而我使用LFS-7.2以外,诊断完全一致。
可执行文件 as 来自软件包Binutils-2.22,在/tools/bin里面并没有as文件,但存在i686-lfs-linux-gnu-as
在host 环境下执行:
# /tools/bin/i686-lfs-linux-gnu-ld -v
GNU ld (GNU Binutils) 2.22
chroot 到LFS之后执行:
# ./i686-lfs-linux-gnu-ld -v
bash: ./i686-lfs-linux-gnu-ld: No such file or directory
根据上面链接的最终解决方案是从第五章重新开始。无奈….
如果前面那里错了的话,那么应该是 Binutils-2.22 Pass 2
存档,Restart over again.
Day-2 跟进:
/tools 目录下可以搜索到连个相关文件:
/tools/bin/i686-lfs-linux-gnu-as
/tools/i686-lfs-linux-gnu/bin/as
但实际上这两个并非二进制文件,而是shell命令。
进入 Binutils-2.22 Pass 2重新make install 一次,发现/tools/bin目录下出现as文件。
结论:严重怀疑5.33. Stripping章节中的下面这行命令删除了不该删的东西:
strip –strip-unneeded /tools/{,s}bin/*
强烈建议同道人士跳过5.33. Stripping章节