现在的位置: 首页 > 综合 > 正文

在ubuntu12.04交叉编译gcc for avr(1)

2013年09月17日 ⁄ 综合 ⁄ 共 2119字 ⁄ 字号 评论关闭

在ubuntu12.04上面交叉编译gcc for avr,也就是我们所说的avr-gcc。

在安装之前需要准备的工具,gcc-core-4.5.1    bintils-2.20  avr-libc-1.8.0

还有必须要安装的工具,及库:gmp-4.3.2    mpfr-2..4.2    mpc-0.8.1

还要安装一些工具automake autoconf 。还有libgmp-dev_5.0.2+dfsg-2ubuntu1_i386.deb、libgmp3-dev_5.0.2+dfsg-2ubuntu1_i386.deb、libppl-c2_0.10.2-10ubuntu1_i386.deb、libppl7_0.10.2-10ubuntu1_i386.deb、libppl0.10-dev_0.10.2-10ubuntu1_i386.deb、libcloog-ppl-dev_0.15.9-2_i386.deb、libcloog-ppl0_0.15.9-2_i386.deb.

PATH=/usr/local/atmel:$PATH加入到profile文件中

一、编译bintils-2.20:

cd bintils-2.20

mkdir bintils-build

cd bintils-build

../configure --prefix=/usr/local/atmel --target=avr --disable-nls --disable-werror 

二、编译gcc-core-4.5.1

在这之前要安装好gmp mpfr和mpc三个库

cd gmp-4.3.2

mkdir gmp-build

cd bmp-build

../configure --prefix=/usr/local/gmp-4.3.2 

make

sudo make install 

cd mpfr-2.4.2

mkdir mpfr-build

cd mpfr-build

../configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2

make

sudo make install

cd mpc-0.8.1

mkdir mpc-build

cd mpc-build

../configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2

make

sudo make install

弄好这三个库之后,不要忘记把库的路径加入到/etc/ld.so.conf.d/下面的文件中,然后

sudo ldconfig -v 

编译gcc

cd gcc-4.5.1

mkdir gcc-build

cd gcc-build

../configure --prefix=/usr/local/atmel  --target=avr --enable-languages=c --disable-nls --disable-libssp --with-dwarf2 --with-gmp=/usr/local/gmp-4.3.2 \

--with-mpfr=/usr/local/mpfr-2.4.2  --with-mpc=/usr/local/mpc-0.8.1 --disable-werror

make all-gcc

sudo make install-gcc

make all-target-libgcc

sudo make install-target-libgcc

三、编译avr-libc

cd avr-libc-1.8.0

mkdir avr-libc-build

cd avr-libc-build

../configure --prefix=/usr/local/atmel --build=`../config.guess` --host=avr  

make 

make install

这个时候如果你没有修改过gcc-4.5.1/gcc/config/avr/下面的avr-devices.c和t-avr两个文件的话,编译出错,因为

gcc下面缺少了某些设备的定义。

编译avr-libc,出现了好多未定义的设备错。现在我们需要来修改gcc-4.5.1/gcc/config/avr/下面的avr-devices.c文件和t-avr文件。这两个文件我已经修改好了。下载后覆盖里面的就行了。

然后回到gcc-builc目录,这次不用重新配置了,只需要:

make all-gcc 

sudo make install-gcc

make all-target-libgcc

sudo make install-target-libgcc

然后再回到 ave-libc-build的目录:

make

sudo make install

这次应该是能正常的编译了,但是make install的时候/bin/bash说找不到ranlib命令,这个命令已经在PATH中了啊,为什么找不到呢?呵呵,因为这个脚本执行的时候是在root用户下面,所以:

sudo -i

输入密码切换到了root用户,然后:

make install

是不是ok了。

现在avrl-ibc已经编译好了。

抱歉!评论已关闭.