交叉编译器的制作方法有哪些
1、最近学习制作嵌入式中制作交叉编译器的方法,本文章是傻瓜式的方法。不过可以先入门学习,以后有时间,可以自己动手亲自制作一个交叉编译器。 首先,在网上下载crosstool软件包吧。 配置crosstool,解压此软件包。 编辑如下几个文件: 1)arm。dat: ?[root@linux-58 crosstool-0。43]# vi arm。dat KERNELCONFIG=`pwd`/arm。config TARGET=arm-linux ? ? ? ? ? ? #交叉编译软件的前缀,如arm-linux-gcc TARGET_CFLAGS="-O" 2)vi demo-arm。...全部
1、最近学习制作嵌入式中制作交叉编译器的方法,本文章是傻瓜式的方法。不过可以先入门学习,以后有时间,可以自己动手亲自制作一个交叉编译器。 首先,在网上下载crosstool软件包吧。 配置crosstool,解压此软件包。
编辑如下几个文件: 1)arm。dat: ?[root@linux-58 crosstool-0。43]# vi arm。dat KERNELCONFIG=`pwd`/arm。config TARGET=arm-linux ? ? ? ? ? ? #交叉编译软件的前缀,如arm-linux-gcc TARGET_CFLAGS="-O" 2)vi 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。txt set -ex TARBALLS_DIR=`pwd`/downloads ? ? #下载的软件包存放的地址 RESULT_TOP=/usr/local/crosstool ? ? #交叉编译环境安装在哪里 export TARBALLS_DIR RESULT_TOP GCC_LANGUAGES="c,c " ?########定义支持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]# vi 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,不允许在root下执行 。/demo-arm。sh 5)最后在/usr/local/crosstool/目录下会生成很多工具arm-linux开头的工具。
总结: 1)基本的过程就这么多, 但要说一下 编译前需要下载一些软件到$TARBALLS_DIR之下 ,crosstool 会自动帮你下载,用wget下载速度慢,可以自己下载到之前我们制定的downloads目录中。
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)制作交叉编译链的方法还有二种, 一种是用这样一个脚本 ,自动编译。 一种是如果你精力旺盛,你可以自己手动编译,。收起