- UID
- 1029342
- 性别
- 男
|
五、建立初始编译器(简版 gcc)
Gcc是最主要的编译器。首先将gcc-4.6.3.ta解压至build-tools,然后将gmp-5.0.2.tar.bz2、mpfr-2.4.2.tar.gz、mpc-0.9.tar.gz分别解压至gcc源码所在目录,并将目录重命名为gmp、mpfr、mpc,然后进入build-boot-gcc目录,进行编译配置,然后make all-gcc并安装,最后make all-target-gcc并安装。实例:
root@fedora:/opt/embedded/build-tools# cd /opt/embedded/build-tools/
root@fedora:/opt/embedded/build-tools# cp /mnt/hgfs/Document/gcc-4.6.3.ta .
root@fedora:/opt/embedded/build-tools# tar -xvf gcc-4.6.3.ta
root@fedora:/opt/embedded/build-tools# cd gcc-4.6.3/
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# cp /mnt/hgfs/Document/mpfr-2.4.2.tar.gz .
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# cp /mnt/hgfs/Document/gmp-5.0.2.tar.bz2 .
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# cp /mnt/hgfs/Document/mpc-0.9.tar.gz .
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# tar -xvf mpfr-2.4.2.tar.gz
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# mv mpfr-2.4.2/ mpfr
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# tar -xjf gmp-5.0.2.tar.bz2
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# mv gmp-5.0.2/ gmp
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# tar -xvf mpc-0.9.tar.gz
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# mv mpc-0.9 mpc
这里需要修改一下编译配置文件:/opt/embedded/build-tools/gcc-4.6.3/gcc
/config/arm/t-linux
将“TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer –fPIC”改为
“TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc -D__gthr_posix_h”。
然后便可以切换到目录build-boot-gcc进行编译了,实例:
root@fedora:/opt/embedded/build-tools/gcc-4.6.3# cd /opt/embedded/build-tools/build-boot-gcc/
root@fedora:/opt/embedded/build-tools/build-boot-gcc# ../gcc-4.6.3/configure --target=$TARGET --prefix=$PREFIX --without-headers --enable-languages=c --disable-threads --with-newlib --disable-shared --disable-libmudflap --disable-libssp
root@fedora:/opt/embedded/build-tools/build-boot-gcc# make all-gcc
root@fedora:/opt/embedded/build-tools/build-boot-gcc# make install-gcc
root@fedora:/opt/embedded/build-tools/build-boot-gcc# make all-target-libgcc
root@fedora:/opt/embedded/build-tools/build-boot-gcc# make install-target-libgcc
完成之后,$PREFIX/bin下又多了几个文件:
arm-linux-cpp*
arm-linux-gcc*
arm-linux-gcc-4.6.3*
arm-linux-gcov*
这些生成的文件的作用分别为:
arm-linux-cpp:GNU的C的预编译器
arm-linux-gcc:GNU的C语言编译器
arm-linux-gcc-4.6.3:GNU的C语言编译器,其实和arm-linux-gcc是一样的
arm-linux-gcov:gcc 的辅助测试工具,用来分析和优化程序 |
|