搭建ARM-Cortex的交叉编译环境

GCC的编译参数参考自“ http://webcache.googleusercontent.com/search?q=cache:We-3G4SDlqAJ:bbs.byr.cn/article/Embedded_System/9011+cortex-m0+gcc&cd=16&hl=zh-CN&ct=clnk ”。

以下是自己在Debian和Mingw下测试过的。

以下的流程也适合在Mingw32下,只是要记得把libintl-8.dll和libiconv-2.dll拷贝到可执行文件夹下。

一、先安装必要的环境

sudo apt-get install libgmp3-dev libmpfr-dev libmpcdec-dev curl \
flex bison autoconf texinfo build-essential libncurses5-dev

二、从官网下载文件,然后解压文件

tar xvf binutils-2.22.tar.bz2
tar xvf gcc-4.6.2.tar.bz2
tar xvf gmp-5.0.2.tar.bz2
tar xvf mpfr-3.1.0.tar.bz2
tar xvf newlib-1.19.0.tar.gz

cd gcc-4.6.2
ln -s ../newlib-1.19.0/newlib/ .
ln -s ../gmp-5.0.2 gmp
ln -s ../mpfr-3.1.0 mpfr
ln -s ../mpfr-3.1.0 mpc

三、编译“GCC”依赖的库

mkdir bgmp
cd bgmp
../gmp-5.0.2/configure --disable-shared --prefix=/mnt/tmp/cortex-m0-gcc/libgmp
make
make install


mkdir bmpfr
cd bmpfr
../mpfr-3.1.0/configure --disable-shared --prefix=/mnt/tmp/cortex-m0-gcc/libmpfr \
--with-gmp=/mnt/tmp/cortex-m0-gcc/libgmp
make
make install


mkdir bmpc
cd bmpc
../mpc-0.9/configure --disable-shared \
--with-mpfr=/mnt/tmp/cortex-m0-gcc/libmpfr/ \
--with-gmp=/mnt/tmp/cortex-m0-gcc/libgmp/ \
--prefix /mnt/tmp/cortex-m0-gcc/libmpc
make
make install

注意:如果在编译的时候没有选择–disable-shared那么就需要把动态链接库加到环境里,而且以后使用GCC也需要这个。

export LD_LIBRARY_PATH="/mnt/tmp/cortex-m0-gcc/libmpfr/lib/:\
/mnt/tmp/cortex-m0-gcc/libgmp/lib/:\
/mnt/tmp/cortex-m0-gcc/libmpc/lib/"

四、开始编译“交叉编译”工具链(在编译gcc的时候比较慢)

#编译“二进制工具”
../binutils-2.22/configure --disable-shared --target=arm-cortex-eabi --prefix=/opt/arm-cortex-mx
make
sudo -E make install


#编译GCC。
../gcc-4.6.2/configure --disable-shared --target=arm-cortex-eabi --prefix=/opt/arm-cortex-mx/ \
--enable-languages="c" --with-gnu-ld --with-gnu-as --disable-nls \
--disable-libssp --without-headers --disable-threads \
--disable-libmudfap --disable-libgomp --disable-libstdcxx-pch \
--disable-libunwind-exceptions --disable-libffi \
--enable-extra-sgxxlite-multilibs \
--with-gmp=/mnt/tmp/cortex-m0-gcc/libgmp/ \
--with-mpfr=/mnt/tmp/cortex-m0-gcc/libmpfr/ \
--with-mpc=/mnt/tmp/cortex-m0-gcc/libmpc/ \
--with-newlib


#将工具路径添加到环境中
export PATH=$PATH:/opt/arm-cortex-mx/bin/

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.