LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1186|回复: 3

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

[复制链接]
发表于 2009-7-22 14:48: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.cn/bbs/showthread.php?t=252928这篇帖子中的Binutils-2.16.1 - 第一遍前 export显示的信息 我的是如下显示
declare -x HOME="/home/lfs"
declare -x LC_ALL="OSIX"
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.)
发表于 2009-7-22 16:18:22 | 显示全部楼层
环境没有设置好
回复 支持 反对

使用道具 举报

发表于 2009-7-22 16:20:20 | 显示全部楼层
TERM="linux"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-22 16:30:34 | 显示全部楼层
谢谢大家,我解决了,虽然不知道具体原因,下面是我的分析和方法,我删除了生成的文件和目录后,从新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$
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表