您的位置:首页 > 运维架构 > Linux

ARM-Linux交叉编译工具链的建立

2013-06-15 12:34 501 查看
sudo apt-get install bison

sudo apt-get install flex

sudo apt-get install build-essentia

我遇到依赖数的问题,sudo apt-get install -f 来解决,可能是第三方源的问题

[b]准备工作:下载资源包
[/b]



【 binutils-2.16.1.tar.bz2 】 http://ftp.gnu.org/gnu/binutils/
【 gcc-4.0.0.tar.bz2 】 http://ftp.gnu.org/gnu/gcc/gcc-4.0.0/
【 glibc-2.3.2.tar.bz2 】 http://ftp.gnu.org/gnu/glibc/
【 linux-2.6.15.4.tar.bz2 】 http://ftp.kernel.org/pub/linux/kernel/v2.6/
【 glibc-linuxthreads-2.3.2.tar.bz2 】 http://ftp.gnu.org/gnu/glibc/
【 gcc-3.3.6.tar.bz2 】 http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/
【 gdb-6.5.tar.bz2 】 http://ftp.gnu.org/gnu/gdb/
这些版本可以变动

[b]cd crosstool-0.43[/b]

# cp demo-arm.sh arm.sh
# vi arm.sh


修改后的arm.sh的脚本内容如下:
#!/bin/sh
set -ex
TARBALLS_DIR=/home/arm9263/downloads # 定义工具链源码所存放位置。
RESULT_TOP=/opt/crosstool        # 定义工具链的安装目录
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"     # 定义支持C, C++语言
export GCC_LANGUAGES
# 创建/opt/crosstool目录
mkdir -p $RESULT_TOP
# 编译工具链,该过程需要数小时完成。
eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat`  sh all.sh --notest
             #在此可以看到你编译的配置文件是arm.dat和gcc-4.1.0-glibc-2.3.2-tls.dat
echo Done.



arm.dat和gcc-4.1.0-glibc-2.3.2-tls.dat两个文件



KERNELCONFIG=`pwd`/arm.config  # 内核的配置
TARGET=arm-linux           # 编译生成的工具链名称
TARGET_CFLAGS="-O"           # 编译选项


BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.0
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.15.4
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GDB_DIR=gdb-6.5

各项内容和自己的目录或者安装包对应

执行
# cd crosstool-0.43
# ./arm.sh


过程中遇到的问题:

configure: error: Unrecognized target system type; please check config.sub.

make: *** [configure-bfd] Error 1
#arm.dat中工具链的名称:"TARGET=arm-linux-"改为"TARGET=arm-linux"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: