问题原因是使用crosstool0.43生成工具链 无法识别binutils的2.20以上版本
解决方法有两种
方法(1)修改glibc文件夹中的configure文件(通过find /opt/crosstool -name configure 命令查找)
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.1[3-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.[1-2][0-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
还有3981行也有这样的代码。。 。
方法(2)重新安装低版本binutils
在www.gnu.org的网站上下binutils的2.18版本解压源码包
cd binutils-2.18
./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义)
make all
make install
编译成功后在/tmp/binutils/bin/中就生成了ld as程序的可执行文件
重新链接/usr/bin/ld 于/usr/bin/as文件
sudo rm /usr/bin/ld /usr/bin/as
sudo ln –s /tmp/binutils/bin/ld /usr/bin/ld
sudo ln –s /tmp/binutils/bin/as /usr/bin/as
然后可运行ld –v 和as –v 查看版本是否为2.18
然后再运行crosstoll-0.43目录下的demo-arm-softfloat.sh即可成功建立交叉编译环境了。
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2010-06/26908.htm