使用crosstool 製作arm-linux交叉編譯鏈4.1.0

來源:互聯網
上載者:User

使用  crosstool 製作arm-linux交叉編譯鏈4.1.0  
crosstool是個不錯的軟體,能夠很方便的編譯自己的交叉編譯環境
crosstool-0.43 : http://kegel.com/crosstool/crosstool-0.43.tar.gz我們要編譯的環境為 gcc-4.1.0-glibc-2.3.2  配置crosstool1)arm.dat:
  
  [root@linux-58 crosstool-0.43]# cat arm.dat
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux             #交叉編譯軟體的首碼,如arm-linux-gcc
TARGET_CFLAGS="-O" 
2)demo-arm.sh:
   
            
#!/bin/sh
# This script has one line for each known working toolchain
# for this architecture.  Uncomment the one you want.
# Generated by generate-demo.pl from buildlogs/all.dats.txtset -ex
TARBALLS_DIR=/phydisk/arm_toolchain/downloads     #下載的軟體包存放的地址
RESULT_TOP=/phydisk/arm_toolchain/crosstool     #交叉編譯環境安裝在哪裡
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES# Really, you should do the mkdir before running this,
# and chown /opt/crosstool to yourself so you don't need to run as root.
mkdir -p $RESULT_TOP#eval `cat arm.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest
#eval `cat arm.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-2.95.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.1.0-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest
eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest     #這是我們要編譯的交叉環境的版本echo Done.3) gcc-4.1.0-glibc-2.3.6-tls.dat

[root@linux-58 crosstool-0.43]# cat gcc-4.1.0-glibc-2.3.6-tls.dat
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.0
GLIBC_DIR=glibc-2.3.6
LINUX_DIR=linux-2.6.15.4
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
GDB_DIR=gdb-6.5
GLIBC_EXTRA_CONFIG="$GLIBC_EXTRA_CONFIG --with-tls --with-__thread  --enable-kernel=2.4.18"   4)最後在使用者模式下執行demo-arm.sh就可以了./demo-arm.sh總結: 1)基本的過程就這麼多, 但要說一下
編譯前需要下載一些軟體到$TARBALLS_DIR之下 ,不下載也行,crosstool 會自動幫你下載,
我嫌crosstool用wget下載速度慢,用flashget在window下載後傳到linux系統中。

binutils-2.16.1.tar.bz2  glibc-linuxthreads-2.3.2.tar.bz2
binutils-2.17.tar.gz     glibc-linuxthreads-2.3.6.tar.bz2
gcc-3.3.6.tar.bz2        glibc-linuxthreads-2.3.6.tar.gz
gcc-4.1.0.tar.bz2        linux-2.6.15.4.tar.bz2
gdb-6.5.tar.bz2          linux-libc-headers-2.6.12.0.tar.bz2
glibc-2.3.2.tar.bz2     
glibc-2.3.6.tar.gz   2)製作交叉編譯鏈的方法還有二種,
一種網上的一步一步地編譯 ,
一種是用<<HOWTO build arm-linux toolchain for ARM/XSCALE>> 這樣一個指令碼 ,我在使用之中出錯,沒有成功。 3)相比較而言,使用crosstool這個工具是最簡單的,不過時間挺長的,那個指令碼足足花費了5個小時才結束。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.