分类: 嵌入式
2010-05-11 14:30:29
2010-5-11 吴兴博
机器环境:
制作交叉编译器的系统环境:ubuntu10.04,
x86_64, gcc4.4.3。
使用的源码包:
binutils-2.20.1
gcc-4.4.4(4.5.1)
gdb-7.1(7.2)
newlib-1.18.0(glibc2.12.1)
另还有gmp、mpfr,mpc.但是都在ubuntu的源里安装了,所以就不在自己编译安装了。
步骤:
从《新立得》安装一些必要的软件包:
texinfo
libgmp3-dev
libmpfr-dev
libmpc-dev
libncurses5-dev
设置环境变量:(之前多次尝试失败都是没有设置环境变量而是直接用的值,我的确不知道为什么会错,不设置的话理论上也是可以的,就是手累点)
我是在普通用户模式编译的,之后newlib的make install时,sudo会忽略设置的环境变量,所以sudo –s后export一遍,再make
install。全用root的话就是手省事点。
在make的时候,加上-j选项可以并行编译,-j4选线的意思是最多用4个并行任务,自己可以根据机器实际情况调整。
$export TARGET=mips-elf #这里可以换成mipsel-elf用于小端模式。
(TARGET=mips-linux-gnu)
$export
PREFIX=/usr/local/$TARGET
(PREFIX=/opt/wuxb/mips-cross, 这样的话,把prefix目录改成自己的权限chown wuxb:wuxb /opt/wuxb,后面就不用老sudo了)
$export
PATH=$PATH:$PREFIX/bin
$mkdir build-binutils
$cd build-binutils
$../binutils-2.20.1/configure --target=$TARGET
--prefix=$PREFIX
$make all
$sudo make
install
$mkdir build-gcc
$cd build-gcc
$../gcc-4.4.4/configure --target=$TARGET --prefix=$PREFIX --without-headers
--with-newlib --with-gnu-as
--with-gnu-ld
(--with-glibc)
$make all-gcc # (注意,这里是make all-gcc)
$sudo make
install-gcc # (注意,这里是make install-gcc)
$mkdir build-newlib
$cd build-newlib
$../newlib-1.18.0/configure --target=$TARGET
--prefix=$PREFIX
$make all
$sudo -s
#export TARGET=mips-elf
#export
PREFIX=/usr/local/$TARGET
#export
PATH=$PATH:$PREFIX/bin
#make install
$mkdir build-gcc2
$cd build-gcc2
$../gcc-4.4.4/configure --target=$TARGET --prefix=$PREFIX --with-newlib --with-gnu-as
--with-gnu-ld --disable-shared --disable-libssp
$make all #(和前面一次的编译不同,这里是make all)
$ sudo make install
$mkdir build-gdb
$cd build-gdb
$../gdb-7.1/configure --target=$TARGET
--prefix=$PREFIX --enable-sim-stdio
$make all
$sudo make install