+ -
当前位置:首页 → 问答吧 → Binutils-2.16.1 - 第一遍出现的问题

Binutils-2.16.1 - 第一遍出现的问题

时间:2009-07-22

来源:互联网

版本是6.2. 按照说明执行完../binutils-2.16.1/configure --prefix=/tools --disable-nls这一步后,开始make,出现如下信息make[3]: *** [ld-new] Error 1
make[3]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make[1]: *** [all-recursive-am] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make: *** [all-ld] Error 2。
makeinstall也同样有这个信息,当然执行稍候的cp -v ld/ld-new /tools/bin时会出现cannot stat `ld/ld-new': No such file or directory这个字样。
请大家帮我看看,这样的错误是什么原因导致的?我对照了http://www.linuxsir.org/bbs/showthread.php?t=252928这篇帖子中的Binutils-2.16.1 - 第一遍前 export显示的信息 我的是如下显示
declare -x HOME="/home/lfs"
declare -x LC_ALL="POSIX"
declare -x LFS="/mnt/lfs"
declare -x OLDPWD="/home/lfs"
declare -x PATH="/tools/bin:/bin:/usr/bin"
declare -x PS1="\\u:\\w\\\$ "
declare -x PWD="/mnt/lfs/sources/binutils-build"
declare -x SHLVL="1"
declare -x TERM="xterm"
难道TERM变量的不同会影响么,请朋友们帮我看看,没有ld-new这个问题会对后面的程序有影响么,还是可以忽略,为什么会出现这个错误呢。。55555
我在ld的log里找到这个 不知道有没有帮助
configure:5027: error: 'environ' undeclared (first use in this function)
configure:5027: error: (Each undeclared identifier is reported only once
configure:5027: error: for each function it appears in.)

作者: reaver   发布时间: 2009-07-22

环境没有设置好

作者: mggui   发布时间: 2009-07-22

TERM="linux"

作者: mggui   发布时间: 2009-07-22

谢谢大家,我解决了,虽然不知道具体原因,下面是我的分析和方法,我删除了生成的文件和目录后,从新tar包并configure后
第一次make的最后结果
make[3]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make[2]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
lfs:/mnt/lfs/sources/binutils-build$

第一次make install的最后结果
make[2]: Entering directory `/mnt/lfs/sources/binutils-build/libiberty/testsuite'
make[2]: Nothing to be done for `install'.
make[2]: Leaving directory `/mnt/lfs/sources/binutils-build/libiberty/testsuite'
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build/libiberty'
lfs:/mnt/lfs/sources/binutils-build$

make -C ld clean执行后 ,告诉 make 程序删除所有 ld 子目录中编译生成的文件

vmake -C ld LIB_PATH=/tools/lib执行后 报错
/bin/sh ./libtool --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -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
mkdir .libs
gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -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 '--build-id'
/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 `/mnt/lfs/sources/binutils-build/ld'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make: *** [all-recursive-am] Error 2
make: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
lfs:/mnt/lfs/sources/binutils-build$

删除了/mnt/lfs/tools/bin上祢哪/ld 后,再次执行上面的命令正确
/bin/sh ./libtool --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -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 -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
make[2]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
make: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
lfs:/mnt/lfs/sources/binutils-build$

最后cp -v ld/ld-new /tools/bin安装完毕
lfs:/mnt/lfs/sources/binutils-build$ cp -v ld/ld-new /tools/bin
`ld/ld-new' -> `/tools/bin/ld-new'
lfs:/mnt/lfs/sources/binutils-build$

作者: reaver   发布时间: 2009-07-22