These critical programs are missing or too old 问题

来源:互联网 发布:东华理工行知学院在哪 编辑:程序博客网 时间:2024/05/08 08:17

问题原因是使用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

 

原创粉丝点击