文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>制作arm-linux交叉编译器

制作arm-linux交叉编译器

时间:2010-11-23  来源:lantianyu520

原创文章版权所有!如需转载,请注明出处: http://hi.baidu.com/liushuiyue1/myhome谢谢合作!!!!!

本文主要利用crosstools-0.43交叉编译链制作arm平台下的交叉编译器。

1到http://kegel.com/crosstool/crosstool-0.43.tar.gz下载crosstools-0.43交叉编译链

    ,在http://kegel.com/crosstool/crosstool-0.43/buildlogs/可以看到各种CPU和GCC+Glibc版本那些已经编译成功,那些部分成功,那些彻底失败。如果你不是编译器开发者,就按着上面做吧。你也可以到http://kegel.com/crosstool/#download看看是否有更新的版本。

2.安装环境

OS: Fedora 8

3 。安装步骤

1) 保证你装Fedora8时,安装了需要的软件开发工具。制作之前确保你的机子上有如下几个工具:bison、flex、build-essential。只要是完整安装就没有什么问题了。

2) 下载crosstool,并解压到你的工作目录

#tar -xzvf crosstool-0.43.tar.gz
#cd crosstool-0.43

3)选用demo-arm-softfloat.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=/opt/arm-linux_source

RESULT_TOP=/opt/crosstool//这两行是需要修改的参数,TARBALLS_DIR是下载的工具源码压缩包的存放目录。
//RESULT_TOP是要生成的工具链的存放目录,一定要改到有写权限的目录,不然无法编译。
//如用root登录进行编译,可能会出错,详情请见后记!
//以上是我的修改,他人可以根据实际情况修改。

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-softfloat.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-2.95.3-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.3.6-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest

eval `cat arm-softfloat.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest --gdb

echo Done.

打开顶层目录下的gcc-3.4.5-glibc-2.3.6.dat这个文件可以看到需要下载的bz2源码

BINUTILS_DIR=binutils-2.15

GCC_DIR=gcc-3.4.5

GLIBC_DIR=glibc-2.3.6

LINUX_DIR=linux-2.6.24.4

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6

3) 最后一步:进入crosstool-0.43目录,输入./ demo-arm-softfloat.sh,需要注意的运行这条指令要在普通用户下运行,不能再root用户下。最后可以在${RESULT_TOP}目录中看到想要的工具链、头文件、库文件等文件了。

如果由于我想使用最新的内核如2.6.30,所以在编译完以上配置的工具链后,我将“LINUX_DIR=linux-2.6.24.4 ”改成“LINUX_DIR=linux-2.6.30.2 ”,并下载linux-2.6.30.2.tar.bz2到${TARBALLS_DIR}目录下,重新编译了一次即可。

下面是一些源码的下载网址链接:

binutils-2.19.1.tar.bz2
glibc-2.9.tar.gz         
dmalloc-5.5.2.tgz       
glibc-ports-2.9.tar.bz2  
mpfr-2.4.2.tar.bz2
duma_2_5_15.tar.gz      
gmp-4.3.1.tar.bz2        
ncurses-5.7.tar.gz
ecj-latest.jar      
libelf-0.8.12.tar.gz     
sstrip.c
gcc-4.3.2.tar.bz2       
linux-2.6.33.1.tar.bz2  
strace-4.5.19.tar.bz2
gdb-6.8.tar.bz2        
ltrace_0.5.3.orig.tar.gz

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载