食品安全的理解:UBUNTU8.10下降低GCC版本来编译croostool

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 07:12:52
UBUNTU8.10下降低GCC版本来编译croostool
最近,UBUNTU8.10出来了。我很兴奋,申请了张光盘回来就装进机子里。以前用ubuntu8.04的时候,用crosstool编译arm开发环境非常顺利,除了出点小状况。而装ubuntu8.10以后,发现编译交叉工具链要出错:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for pwd... /bin/pwd
checking for arm-linux-gcc... gcc
checking version of gcc... 4.2.3, bad
checking for gnumake... no
checking for gmake... no
checking for make... make
checking version of make... 3.81, ok
configure: error:
*** These critical programs are missing or too old: gcc
*** Check the INSTALL file for required versions
.


最初以为是gcc不存在。不过想想,哪有可能,gcc可是linux的核心工具包,没有gcc哪成。google一下,发现不是没有GCC,而是GCC版本太高了。冏~~~~~我记得装FEDORA CORE 10的时候,也遇上了这个问题。

问题出来了,总是要解决吧。看看解决办法吧。简单来说,就是下载低版本的GCC,然后重新创建gcc的软链接。(其实,GCC也就是一个符号链接,"cd /usr/bin"下,"ls -l | grep gcc"一下就可以看到了)。

假设现在我们的GCC版本为4.3,要把GCC降低到GCC3.4。

首先,你需要去你的usr/bin/下去看看有没有gcc-3.4这样文件,如果没有的话,就安装一下吧:

apt-get install gcc-3.4

之后,你需要把usr/bin/目录下的gcc文件删除掉或者避免意外发生,可以把它命名为gcc.bak。这里需要说明的如果你不删除的话,你会发现你 使用ln -s /usr/bin/gcc-3.4 /usr/bin/gcc总是不起作用。实际上你在用gcc -v查看当前版本时,就一直使用的usr/bin/gcc。而ln -s /usr/bin/gcc-3.4 /usr/bin/gcc的目的就是为了生成3.4版本的gcc。一句话,你只需要执行:

rm /usr/bin/gcc
ln -s /usr/bin/gcc-3.4 /usr/bin/gcc


然后再gcc -v就可以看到当前版本就是3.4了。如果你想再使用当前的4.2.3的话,就使用同样的方法:

rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.2.3 /usr/bin/gcc


再gcc -v来确定一下版本就知道了。

如果运行
ls -la /bin/sh
看到链接的是 dash ,则请运行以下命令
sudo dpkg-reconfigure dash
选择 no 以删除 dash ,编译完成可再运行此命令选择 yes 以重新安装 dash
此处如果不改好的话,编译时会出现错误.

再试试编译crosstool,看还出现问题不?

GOOD LUCK TO YOU!