+ -
当前位置:首页 → 问答吧 → 求助各位: LFS6.3 第一步binutils编译就报错,极其郁闷!先谢过!

求助各位: LFS6.3 第一步binutils编译就报错,极其郁闷!先谢过!

时间:2009-01-03

来源:互联网

报错/tools/bin/ld: unrecognized option '--hash-style=both',
(注:CC="gcc -B/usr/bin" 搞不定)

lfs版本: lfslivecd-x86-6.3-r2160.iso
宿主机编译器:gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu1)
宿主机:kbuntu 8.04 (2.6.24-21-generic)

完整操作如下:
CC="gcc -B/usr/bin/" ../binutils-2.17/configure --prefix=/tools --disable-nls
make
make install
make -C ld clean
make -C ld LIB_PATH=/tools/lib

完整错误信息如下:

lfs@wood-desktop:/media/lfs/sources/binutils-build$ make -C ld LIB_PATH=/tools/lib
make: Entering directory `/media/lfs/sources/binutils-build/ld'
Making info in po
make[1]: Entering directory `/media/lfs/sources/binutils-build/ld/po'
make[1]: Nothing to be done for `info'.
make[1]: Leaving directory `/media/lfs/sources/binutils-build/ld/po'
make[1]: Entering directory `/media/lfs/sources/binutils-build/ld'
make[1]: Nothing to be done for `info-am'.
make[1]: Leaving directory `/media/lfs/sources/binutils-build/ld'
make all-recursive
make[1]: Entering directory `/media/lfs/sources/binutils-build/ld'
Making all in po
make[2]: Entering directory `/media/lfs/sources/binutils-build/ld/po'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/media/lfs/sources/binutils-build/ld/po'
make[2]: Entering directory `/media/lfs/sources/binutils-build/ld'
/bin/sh ./libtool --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -o ld-new ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o eelf_i386.o ei386linux.o ../bfd/libbfd.la ../libiberty/libiberty.a
gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -o ld-new ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o eelf_i386.o ei386linux.o ../bfd/.libs/libbfd.a ../libiberty/libiberty.a
/tools/bin/ld: unrecognized option '--hash-style=both'
/tools/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
make[2]: *** [ld-new] Error 1
make[2]: Leaving directory `/media/lfs/sources/binutils-build/ld'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/media/lfs/sources/binutils-build/ld'
make: *** [all] Error 2
make: Leaving directory `/media/lfs/sources/binutils-build/ld'
lfs@wood-desktop:/media/lfs/sources/binutils-build$

作者: wuqixuan   发布时间: 2009-01-03

我几天前先用Ubuntu 8.10做LFS,也是到binutils pass1的时候就编译失败,现在换用fedora10,就一切正常,已经到6.29automake了,估计是Ubuntu少装了什么包,具体搞不懂

建议用fedora试试

作者: dong99   发布时间: 2009-01-03

seems ubuntu doesn't have a whole compiled environment.
it's no problem as lfs-livecd was used.

作者: Dennis.Wang   发布时间: 2009-01-03

使用livecd 进行第一轮编译,会比较简单吧

作者: think365   发布时间: 2009-01-04

多谢各位答复。我现在换了一个6.2.5版本。宿主还是在kbuntu8.04下做,问题没有了,现在已经执行到6.11步骤了。我猜想6.3版本应该也是可以成功的。6.3之所以失败,我怀疑是我自己的操作导致:

我原先没有加CC="gcc -B/usr/bin",来执行configure,这时肯定失败。后来我在网上搜索到帖子说需要加“CC="gcc -B/usr/bin"",我就执行了一把 make clean,再执行者CC="gcc -B/usr/bin" ../configure 这句话,我怀疑这个操作没有生效。我应该把整个binutils-build目录删除干净,再执行 CC="gcc -B/usr/bin" ../configure 这句话。这样估计就没有问题了。

作者: wuqixuan   发布时间: 2009-01-04

引用:
作者: wuqixuan
多谢各位答复。我现在换了一个6.2.5版本。宿主还是在kbuntu8.04下做,问题没有了,现在已经执行到6.11步骤了。我猜想6.3版本应该也是可以成功的。6.3之所以失败,我怀疑是我自己的操作导致:

我原先没有加CC="gcc -B/usr/bin",来执行configure,这时肯定失败。后来我在网上搜索到帖子说需要加“CC="gcc -B/usr/bin"",我就执行了一把 make clean,再执行者CC="gcc -B/usr/bin" ../configure 这句话,我怀疑这个操作没有生效。我应该把整个binutils-build目录删除干净,再执行 CC="gcc -B/usr/bin" ../configure 这句话。这样估计就没有问题了。

编译不加CC="gcc -B/usr/bin" ??
你难道不是按手册上说的去做吗 ?

作者: dong99   发布时间: 2009-01-04

LFS一开始有一个version-check.sh的脚本,详见:iv. Host System Requirements
你在宿主系统运行这个脚本可以看看宿主系统的相关软件版本是否都符合要求。

作者: ti8er   发布时间: 2009-01-04

引用:
作者: dong99
编译不加CC="gcc -B/usr/bin" ??
你难道不是按手册上说的去做吗 ?
Linux From Scratch BOOK 上面没有说要加CC="gcc -B/usr/bin"呀?

作者: wuqixuan   发布时间: 2009-01-05

引用:
作者: ti8er
LFS一开始有一个version-check.sh的脚本,详见:iv. Host System Requirements
你在宿主系统运行这个脚本可以看看宿主系统的相关软件版本是否都符合要求。
请我这个文件在光盘的哪个目录下?我没有找到。

作者: wuqixuan   发布时间: 2009-01-05

引用:
作者: wuqixuan
请我这个文件在光盘的哪个目录下?我没有找到。
http://www.linuxfromscratch.org/lfs/.../hostreqs.html

cat > version-check.sh << "EOF"
#!/bin/bash
export LC_ALL=C

# Simple script to list version numbers of critical development tools

bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];
then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
else echo "yacc not found"; fi
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -e /usr/bin/awk ];
then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
else echo "awk not found"; fi
gcc --version | head -n1
/lib/libc.so.6 | head -n1 | cut -d" " -f1-7
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1
echo 'main(){}' > dummy.c && gcc -o dummy dummy.c
if [ -x dummy ]; then echo "Compilation OK";
else echo "Compilation failed"; fi
rm -f dummy.c dummy

EOF

bash version-check.sh

作者: Dennis.Wang   发布时间: 2009-01-05

热门下载

更多