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

来源:互联网 发布:csdn免积分下载器 mac 编辑:程序博客网 时间:2024/06/06 00:35

sudo apt-get install bison

sudo apt-get install flex

sudo apt-get install build-essentia

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

准备工作:下载资源包

【 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/
这些版本可以变动

cd crosstool-0.43

# 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"