免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 948 | 回复: 0
打印 上一主题 下一主题

arm-linux 交叉编译 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-20 12:16 |只看该作者 |倒序浏览

我们使用以下版本的文件为例子建立arm-linux 交叉编译环境:


  • binutils-2.11.gz

  • gcc-2.95.3.gz

  • glibc-2.2.3.gz

  • glibc-linuxthreads-2.2.3.tar.gz

  • linux-2.4.5.gz

  • patch-2.4.5-rmk7.gz         # linux kernel patch

我们的工作路径是: ~ -- +------- tars  --+-----  SourceDir
     |                \-----  BuildDir
     \------ armtools
tars
在这里放我们的下载来的 .tar.gz 文件
SourceDir
这个临时目录放我们解压缩后的源文件
BuildDir
我们在这里编译
armtools
把arm-linux 交叉编译环境的安装在这里

  • 安装linux 的头文件
     


    • 解压缩,打补丁 cd ~/tars/SourceDir
      tar -zxf ../linux-2.4.5.tar.gz
      cd linux
      zcat ../../patch-2.4.5-rmk7.gz | patch -p1

    • 修改 Makefile 建议先删除 .config 文件, 否这以后会遇到麻烦。
      将Makefile中ARCH := ......改为:ARCH=arm #
      执行一下 make clean

    • 建立连接
       


      • 如果是LART板子 make ARCH=arm lart_config
        cd include/asm-arm
        rm -f arch proc
        ln -s arch-sa1100 arch
        ln -s proc-armv proc

      • 如果是clps711x的CPU cd include/asm-arm
        rm -f arch proc
        ln -s arch-clps711x arch
        ln -s proc-armv proc

      • 为你自己的板子定制: make ARCH=arm menuconfig
        make dep


    • 拷贝头文件 cp -dR include/linux ~/armtools/arm-linux/include
      cp -dR include/asm-arm ~/armtools/arm-linux/include/asm


  • 编译安装binutils
     


    • 解压缩 cd ~/tars/SourceDir
      tar -zxf ../binutils-2.11.gz

    • 编译 cd ~/tars/BuildDir
      mkdir binutils
      cd binutils
      ../../SourceDir/binutils-2.11/configure --target=arm-linux --prefix=~/armtools
      make all install


  • 编译安装gcc 的c 编译器
     


    • 解压缩 cd ~/tars/SourceDir
      tar -zxf ../gcc-2.95.3.tar.gz

    • 修改gcc 的t-linux 文件在t-linux文件中的TARGET_LIBGCC2_CFLAGS上加上__gthr_posix_h inhibit_libc
      cd gcc-2.95.3/ gcc/config/arm
      mv t-linux t-linux-orig
      sed 's/TARGET_LIBGCC2_CFLAGS =/TARGET_LIBGCC2_CFLAGS = -D__gthr_posix_h -Dinhibit_libc/'  t-linux-core
      cp ./t-linux-core ./t-linux

    • 编译 cd ~/tars/BuildDir
      mkdir gcc-core
      cd gcc-core
      ../../SourceDir/gcc-2.95.3/configure \
                              --target=arm-linux \
                              --prefix=~/armtools \
                              --enable-languages=c \
                              --with-local-prefix=~/armtools/arm-linux \
                              --without-headers \
                              --with-newlib \
                              --disable-shared
      make all install


  • 编译安装 glibc
     


    • 解压缩 cd ~/tars/SourceDir
      tar -zxf ../glibc-2.2.3.tar.gz
      cd glibc-2.2.3
      tar -zxf ../../glibc-linuxthreads-2.2.3.tar.gz

    • 编译 cd ~/tars/BuildDir
      mkdir glibc
      cd glibc
      CC=arm-linux-gcc AR=arm-linux-ar RANLIB=arm-linux-ranlib \
      ../../SourceDir/glibc-2.2.3/configure \
                      --host=arm-linux \
                      --prefix=~/armtools/arm-linux \
                      --enable-add-ons \
                      --with-headers=~armtools/arm-linux/include
      make all install


  • 编译安装gcc 的c, c++ 编译器
     


    • 恢复t-linux 文件 cd ~/tars/BuildDir
      mkdir gcc
      cd gcc
      cp ../../SourceDir/gcc-2.95.3/gcc/config/arm/t-linux-orig \
                      ../../SourceDir/gcc-2.95.3/gcc/config/arm/t-linux

    • 编译 ../../SourceDir/gcc-2.95.3/configure \
                              --target=arm-linux \
                              --prefix=~/armtools \
                              --enable-languages=c,c++ \
                              --with-local-prefix=~armtools/arm-linux
      make all install

    注: 如果你是第一次制作arm-linux 交叉编译环境,强烈建议你用本文所使用的各个程序的版本。如果用其它版本,按照本文的方法可能会在编译的时候出问题,因为我没有时间去测试各个版本的组合


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16029/showart_88091.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP