您的位置:首页 > 其它

Ubuntu安装crosstool These critical programs are missing or too old: as ld错误

2011-06-21 23:40 483 查看
前提:自带的是gcc-4.4.1无法用crosstool正常编译交叉编译器,所以必须安装gcc-4.1,但是不必卸载4.4.1。方法是::

1. 先安装gcc-4.1,sudo apt-get gcc-4.1

2. sudo rm /usr/bin/gcc

3.sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc

(建立GCC到gcc-4.1的软连接)


Ubuntu 9.10编译交叉编译工具时会出现下面的错误:

These critical programs are missing or too old: as ld

错误分析:

通过字面分析可知,重要的程序丢失,或者,版本太老,具体的程序名字为:as ld,很多朋友遇到这儿的时候会很郁闷,版本太老???我们的9.10已经是比较新的系统了,怎么可能还老呢,crosstool工具到现在还是 0.43,其最后更新时间不超过2008年,这是怎么回事呢?

我们先来看下as ld的版本:

sudo as -v

GNU assembler version 2.20 (i486-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.20

sudo ld -v

GNU ld (GNU Binutils for Ubuntu) 2.20

从上面的信息可知,两个版本都是2.20, 在看下.dat文件里的要求的各版本信息:

BINUTILS_DIR=binutils-2.16.1

GCC_CORE_DIR=gcc-3.3.6

GCC_DIR=gcc-4.1.1

GLIBC_DIR=glibc-2.3.6

LINUX_DIR=linux-2.6.15.4

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6

GDB_DIR=gdb-6.5

从上面可知,binutils的版本(as ld 二者都在binutils包里)要求为2.16.1,可见我们的程序版本要高的。

分析下出错的脚本位置:

cd ./build/arm-linux/gcc-3.4.5-glibc-2.3.6/glibc-2.3.6$ (有人可能会问,你怎么知道是在这儿的呢)

方法很简单: 1. 用grep 2. 通过分析脚本信息得出

在第3920行左右:

ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;

2.1[3-9]*)

其大概意思就是,判断当前das程序的版本信息,如果其版本不是2.13~2.19版本之间的版本,就出错。

第3981行,同样的道理:

ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;

2.1[3-9]*)

我们将其改为

ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;

2.2[0-9]*)

然后保存退出,这样的话还有一个问题,all.sh会每次都去解压glibc的包,会将修改的内容覆盖掉掉,因此还要修改all.sh脚本:

在第110行左右,将下面的内容注释掉:

if test "$opt_no_unpack" = ""; then

if test "$opt_builduserland" = "1"; then

# Ah, nobody would want to change this :-)

PTXDIST_DIR=ptxdist-testing-20031113

export PTXDIST_DIR

fi

# Download and patch

if test -d "$BUILD_DIR"; then

# Remove in background

mv $BUILD_DIR $BUILD_DIR.del.$$

rm -rf $BUILD_DIR.del.$$ &

fi

mkdir -p $BUILD_DIR

sh getandpatch.sh

fi

然后在编译:

./demo-arm-softfloat.sh

大概要等1个小时左右时间,就能看到echo Done了。

说明:这种做法比较危险,因为不知道as ld两个不同版本程序之间的区别,我简单测试了下arm-linux-gcc是没有问题的,但是不知道会不会有其它影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐