您的位置:首页 > 运维架构 > Linux

编译ARM Linux GCC工具链

2016-05-28 00:00 323 查看
摘要: 心血来潮干的事情!

GNU编译工具链包括binutils,gcc,glibc

binutils:汇编器、连接器

gcc:预处理器、编译器

glibc: C语言库

编译arm-linux-gcc要编译两次,第1次是不带库的纯gcc,可以用来编译裸机程序如linux内核,u-boot等.

然后用第1次编译的gcc来编译目标glibc(或者uclibc)

然后进行第二次gcc编译.

准备以下源码:

binutils-2.25.tar.bz2

gcc-4.9.2.tar.bz2

glibc-2.21.tar.xz

gmp-5.1.3.tar.xz

linux-3.4.106.tar.xz

mpc-1.0.3.tar.gz

mpfr-3.1.2.tar.xz

编译顺序:

gmp -> mpfr -> mpc -> binutils -> gcc -> glibc -> binutils -> gcc

[code=plain]1.依次编译gmp,mpfr,mpc
默认安装位置是/usr/local/lib

#./configure
#make
#make install


[code=plain]2.编译binutils
# ./configure --host=i686-linux-gnu --disable-nls --disable-multilib --disable-shared --target=arm-linux-gnueabi --prefix=/home/toolchain/arm-linux-gnueabi-4.9.2 --with-sysroot=/home/toolchain/arm-linux-gnueabi-4.9.2/arm-linux-gnueabi/sysroot

#./configure --disable-nls --disable-multilib --disable-shared --target=arm-none-linux-gnueabi --prefix=/home/toolchain/arm-linux-gcc-nolibc
# make
# make install


[code=plain]3.编译gcc
../configure --host=i686-linux-gnu  --enable-targets=all --disable-shared --enable-languages=c --disable-checking --disable-threads --disable-multilib --disable-nls --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --without-headers --with-newlib --disable-bootstrap --disable-libquadmath --disable-libatomic --with-cpu=arm920t --target=arm-none-linux-gnueabi --prefix=/home/toolchain/arm-none-linux-gnueabi


[code=plain]4.编译glibc
#CC=arm-none-linux-gnueabi-gcc ../configure --host=arm-linux-gnueabi --prefix=/usr --enable-kernel=2.6.32 --with-headers=/home/gnu/linux-3.4.106/usr/include --disable-profile --with-tls --enable-shared -cache-file=config.cache
#make -j4
#make install_root=/home/toolchain/arm-linux-gcc/arm-linux-gnueabi/sysroot install


[code=plain]5.再编译gcc
../configure --host=i686-linux-gnu --disable-shared --enable-targets=all --with-cpu=arm920t --enable-languages=c --disable-multilib --disable-nls --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-bootstrap --disable-libquadmath --disable-libatomic --target=arm-linux-gnueabi --enable-threads=posix --prefix=/home/toolchain/arm-linux-gnueabi-4.9.2 --with-sysroot=/home/toolchain/arm-linux-gnueabi-4.9.2/arm-linux-gnueabi/sysroot


整个过程十分漫长.但是很享受的样子...


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: