新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一步一步制作ARM-Linux交叉編譯環境

        一步一步制作ARM-Linux交叉編譯環境

        作者: 時間:2011-02-25 來源:網絡 收藏
        我們使用以下版本的文件為例子建立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-orig > 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 交叉編譯環境,強烈建議你用本文所使用的各個程序的版本。如果用其它版本,按照本文的方法可能會在編譯的時候出問題,因為我沒有時間去測試各個版本的組合。


        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西华县| 普兰县| 崇仁县| 玉溪市| 永济市| 桑日县| 华阴市| 历史| 麻阳| 永昌县| 荔波县| 年辖:市辖区| 徐汇区| 武清区| 名山县| 济源市| 隆尧县| 揭西县| 泰顺县| 高清| 鹤壁市| 鲜城| 无为县| 云南省| 翼城县| 江阴市| 岑巩县| 阜新| 瑞昌市| 厦门市| 丹江口市| 泽库县| 清涧县| 镇沅| 金秀| 竹北市| 平利县| 全州县| 荆州市| 阜新市| 巫溪县|