/ 中存储网

告诉你Ubuntu 10.04安装交叉编译器的方法及命令

2015-12-10 09:23:44 来源:中存储网

开发环境:Ubuntu 10.04,linux-2.6.26.5

开发步骤:

1.安装和下载可能用到的软件包。

sudo apt-get install bison flex build-essential patch  libncurese5-dev

//libncurese5-dev在10.04中似乎apt-get找不到,但是新力得里看得到的

也可以把这些软件的deb报下下来,然后 sudo dpkg -i *.deb

2. 降低gcc的版本

Ubuntu默认的gcc是4.4的,版本高也是问题(对此实在是无语,真要命)但并不需要卸载4.4,因为大家在终端输入的gcc只是gcc-4.4的软连接,把这个软连接指向4.1就行了。两种方法:

(a).直接apt-get安装

sudo apt-get install gcc-4.1

安装后gcc被覆盖,指向了gcc-4.1。

(b).下载软件包

gcc-4.1_4.1.2-23Ubuntu3_i386.deb

gcc-4.1-base_4.1.2-23Ubuntu3_i386.deb

cpp-4.1_4.1.2-23Ubuntu3_i386.deb

然后sudo dpkg -i  *.deb安装

安装好后修改软连接

sudo rm /usr/bin/gcc

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

3. 修改sh版本

运行:ls -la /bin/sh

可以看到/bin/sh的链接是dash,运行以下命令:

sudo dpkg-reconfigure dash

选择no以删除dash

可以再运行一下ls -la /bin/sh 可以看到它现在指向了bash,别还以为是dash,别看错哦~

4. 新建安装文件夹crosstool和downloads,最好是在/home/lnux下,一旦建立就不要移动了。

mkdir /home/linux/downloads,将crosstoll-0.43.tar.gz拷入。除此之外,还有其他接下来要用到的源码包,一旦没有的话接下来会自动下载。

5.解压crosstool-0.43.

cd  /home/linux/downloads

tar -zxvf crosstool-0.43.tar.gz

cd crosstool-0.43

这个目录下有很多脚本和配置相关文件,每一个支持的处理器都有对应的脚本。大家现在选用的demo-arm-softfloat.sh是建立支持软浮点的arm交叉编译工具链。

6.修改 demo-arm-softfloat.sh

vim demo-arm-softfloat.sh

修改这两句:

TARBALLS_DIR=$HOME/downloads

RESULT_TOP=/opt/crosstool

为:

TARBALLS_DIR=/home/linux/downloads      //接下来运行时用的软件包自动下载会保存在这里

RESULT_TOP=/home/linux/crosstool            // 生成的工具链会保存在这里。这个文件以后不要移动

7.修改gcc-3.4.5-glibc-2.3.6.dat

vim  gcc-3.4.5-glibc-2.3.6.dat

只要修改LINUX_DIR=linux-2.6.26.5这一句,指定你要的内核版本,一旦downloads里有的话会自动去读,没有会下载放在downloads里。

8. 执行demo-arm-softfloat.sh

./demo-arm-softfloat.sh

这里要很长时间,半小时左右,机子好点十几分钟也可以的。

中存储在这里出错了,错误代码:

These critical programs are missing or too old: as ld...........

上网查了以后说是binutils版本为2.20,太高了,要降到2.19(寒阿),有人修改configure文件,进到里面把2.XX的限制改掉,但是这样有未知的危险,还有一种可行的就是直接安装binutils2.19这种比较可行。

9.修改环境变量

sudo vim /etc/bash.bashrc

在末尾添加:

export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:

10.重新打开一个终端执行:arm-softfloat-linux-gnu-gcc   -v

显示:

Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs

Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long

Thread model: posix

gcc version 3.4.5

则表示构建成功。

11.恢复gcc和sh

sudo rm /usr/bin/gcc

sudo ln -s /usr/bin/gcc-4.4  /usr/bin/gcc

重新安装dash

sudo dpkg-reconfigure dash

选择“是”重新安装dash.