在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式linux-arm交叉編譯工具鏈的構(gòu)建

            嵌入式linux-arm交叉編譯工具鏈的構(gòu)建

            作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
            第一步:首先下載如下源文件
            binutils-2.16.tar.gz,gcc-3.4.4.tar.bz2,t-linux.diff,glibc-2.3.5.tar.gz,glibc-linuxthreads-2.3.5.tar.gz,ioperm.c.diff,linux-2.6.11.12tar.gz并且把所有的源文件放入/home/zmj/usr/arm/src文件夾中,其中zmj是用戶名。并把如下腳本,寫入一個(gè)文件,例如文件名為buildchain.sh,并把該文件放入usr目錄下。
            第二步:運(yùn)行buildchain.sh腳本即可。其中第七步是不需要的,將來(lái)自己編譯內(nèi)核的時(shí)候還要重新配置,故可以刪去。
            #!/bin/bash

            # Setup

            PREFIX=/home/zmj/usr/arm
            TARGET=arm-unknown-linux-gnu
            SYSROOT=${PREFIX}/sysroot
            export ARCH=arm
            export CROSS_COMPILE=${TARGET}-
            export PATH=$PATH:${PREFIX}/bin
            mkdir -p ${PREFIX}/src

            ## Get the sources
            #
            #cd ${PREFIX}/src
            #tar xvfz binutils-2.16.tar.gz
            #mkdir -p BUILD/binutils-2.16
            #cd BUILD/binutils-2.16
            # ../../binutils-2.16/configure --prefix=${PREFIX} --target=${TARGET} --with-sysroot=${SYSROOT} 2>&1 | tee configure.out
            #make 2>&1 | tee make.out
            #make install 2>&1 | tee -a make.out
            #
            # Linux Kernel Headers

            #cd ${PREFIX}/src
            #tar xvfz linux-2.6.11.12.tar.gz
            #ln -s linux-2.6.11.12 linux
            #cd linux
            #make ARCH=arm CROSS_COMPILE=${CROSS_COMPILE} menuconfig
            #make include/linux/version.h
            #mkdir -p ${SYSROOT}/usr/include
            #cp -a ${PREFIX}/src/linux/include/linux ${SYSROOT}/usr/include/linux
            #cp -a ${PREFIX}/src/linux/include/asm-arm ${SYSROOT}/usr/include/asm
            #cp -a ${PREFIX}/src/linux/include/asm-generic ${SYSROOT}/usr/include/asm-generic
            ##
            ## Glibc headers
            #
            #cd ${PREFIX}/src
            ##tar xvfz glibc-2.3.5.tar.gz
            ##patch -d glibc-2.3.5 -p1 #cd glibc-2.3.5
            ##tar xvfj ../glibc-linuxthreads-2.3.5.tar.gz
            #cd ..
            #mkdir BUILD/glibc-2.3.5-headers
            #cd BUILD/glibc-2.3.5-headers
            #../../glibc-2.3.5/configure --prefix=/usr --host=${TARGET} --enable-add-ons=linuxthreads --with-headers=${SYSROOT}/usr/include 2>&1 | tee configure.out
            #make cross-compiling=yes install_root=${SYSROOT} install-headers 2>&1 | tee make.out
            #touch ${SYSROOT}/usr/include/gnu/stubs.h
            #touch ${SYSROOT}/usr/include/bits/stdio_lim.h
            #
            # Step 4: stage 1 gcc
            #
            #cd ${PREFIX}/src
            #bunzip2 -c gcc-3.4.4.tar.bz2 | tar xvf -
            #patch -d gcc-3.4.4 -p1 < flow.c.diff
            #patch -d gcc-3.4.4 -p1 < t-linux.diff
            #mkdir -p BUILD/gcc-3.4.4-stage1
            #cd BUILD/gcc-3.4.4-stage1
            #../../gcc-3.4.4/configure --prefix=${PREFIX} --target=${TARGET} --enable-languages=c --with-sysroot=${SYSROOT} 2>&1 | tee configure.out
            #make 2>&1 | tee make.out
            #make install 2>&1 | tee -a make.out
            #
            # Step 5: glibc

            #cd ${PREFIX}/src
            #mkdir BUILD/glibc-2.3.5
            #cd BUILD/glibc-2.3.5
            #BUILD_CC=gcc CC=${CROSS_COMPILE}gcc AR=${CROSS_COMPILE}ar RANLIB=${CROSS_COMPILE}ranlib AS=${CROSS_COMPILE}as LD=${CROSS_COMPILE}ld ../../glibc-2.3.5/configure --prefix=/usr --build=i686-pc-linux-gnu--host=arm-unknown-linux-gnu --target=arm-unknown-linux-gnu --without-__thread --enable-add-ons=linuxthreads --with-headers=${SYSROOT}/usr/include 2>&1 | tee configure.out
            #
            #make 2>&1 | tee make.out
            #make install_root=${SYSROOT} install

            # Step 6: stage 2 gcc

            #cd ${PREFIX}/src
            #mkdir BUILD/gcc-3.4.4
            #cd BUILD/gcc-3.4.4
            #../../gcc-3.4.4/configure --prefix=${PREFIX} --target=${TARGET} --enable-languages=c,c++ --with-sysroot=${SYSROOT} 2>&1 | tee configure.out
            #make 2>&1 | tee make.out
            #make install 2>&1 | tee -a make.out
            #cd ../..

            # Step 7: Linux kernel

            cd ${PREFIX}/src/linux
            make zImage
            make modules
            make INSTALL_MOD_PATH=${SYSROOT} modules_install

            注意:文中的大部分#號(hào)是自己當(dāng)初為了分步編譯差錯(cuò)方便而屏蔽掉的部分。自己編譯的時(shí)候可以去掉。順便說(shuō)一下我是在suse環(huán)境下建立這個(gè)交叉編譯環(huán)境的,內(nèi)核是2.6以上的版本,其中—build=i686-pc-linux-gnu。
            幾個(gè)簡(jiǎn)單的命令::set nu顯示文本行號(hào)。:1,5s/^/#/g可以在文本的1~5行添加一個(gè)#號(hào),也即屏蔽掉這幾行。1,5s/^#//g去掉文本1~5行文本開頭的#號(hào)。

            第三步測(cè)試程序Helloworld.c

            #include《stdio.h》
            int main( )
            {
            printf(“Hello ,world!n”);
            return 0;
            }
            可以在腳本中/etc/bash.bashrc中寫入環(huán)境變量,也可以直接寫如下:
            export PATH=/home/zmj/usr/arm/arm/bin:$PATH其中bin中存放的是自己交叉編譯器的路徑。
            cd ..到helloworld.c的目錄。# arm-unknown-linux-gnu-gcc helloworld.c完畢!


            關(guān)鍵詞: linux-arm交叉編譯工具

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉