linux移植手记:交叉工具链编译(2)

mkdir build   ../configure --prefix=$PREFIX --target=$TARGET --disable-nls --disable-shared --with-mpfr=$PREFIX --with-gmp=$PREFIX --without-headers --with-newlib --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-threads --enable-languages=c --disable-multilib --with-abi=aapcs   make all-gcc all-target-libgcc   make install-gcc install-target-libgcc  

(5)编译c库
 配置
 ----不能在源码解压的目录下直接编译,可以在其目录下新建一个文件夹

mkdir build   cd build   CC=$TARGET-gcc ../configure --host=$TARGET --prefix=$PREFIX --enable-add-ons --with-binutils=$PREFIX/bin --with-headers=$PREFIX/include   libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes  

编译

cd $PREFIX/lib/gcc/$TARGET/4.4.5    ln -s libgcc.a libgcc_eh.a    make       make PREFIX=/opt/arm_linux install  

(6)第二次编译gcc
  修正

cd $PREFIX/arm-none-linux-gnueabi     rm lib include -rf     ln -s ../lib lib     ln -s ../include include  

配置

cd $PREFIX/arm-none-linux-gnueabi     rm lib include -rf     ln -s ../lib lib     ln -s ../include include  

7.测试  
  可以直接写个helloworld,用arm-none-linux-gnueabi-gcc编译一下,然后使用file命令查看其属性,我这里是把mini2440提供的内核解压,然后将makefile中的cross-compile的arm-linux-换成现在的arm-none-linux-gnueabi-,make zImage,找到内核下载到板子上,部分信息如下:

load Image of Linux...Uncompressing Linux................................................................................................................................................................. done, booting the kernel.   Linux version 2.6.32.2-FriendlyARM (root@debian6) (gcc version 4.4.5 (GCC) ) #2 Fri Sep 23 17:09:08 CST 2011   CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177   CPU: VIVT data cache, VIVT instruction cache   Machine: FriendlyARM Mini2440 development board   ATAG_INITRD is deprecated; please update your bootloader.   Memory policy: ECC disabled, Data cache writeback   CPU S3C2440A (id 0x32440001)  

好了,只要按着做,应该就有自己的编译器了,不过很多配置我现在也不太清楚,主要就是参考下面的文章,以及碰到错误搜索下了。别急,下一页()会简单看下碰到什么问题以及怎样解决的。

参考:

交叉工具链制作至尊宝典

如何为嵌入式开发建立交叉编译环境

自己动手制作交叉编译工具链

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwsdd.html