微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 构建ARM Linux交叉编译工具链

构建ARM Linux交叉编译工具链

时间:11-09 来源:互联网 点击:

需要数小时完成。

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

echo Done.

3.建立配置文件

在arm.sh 脚本文件中需要注意arm.dat和gcc-3.3.6-glibc-2.3.2.dat两个文件,这两个文件是作为Crosstool的编译的配置文件。其中arm.dat文件内容如下,主要用于定义配置文件、定义生成编译工具链的名称以及定义编译选项等。

KERNELCONFIG=pwd/arm.config # 内核的配置

TARGET=arm-linux- # 编译生成的工具链名称

TARGET_CFLAGS="-O" # 编译选项

gcc-3.3.6-glibc-2.3.2.dat文件内容如下,该文件主要定义编译过程中所需要的库以及它定义的版本,如果在编译过程中发现有些库不存在时,Crosstool会自动在相关网站上下载,该工具在这点上相对比较智能,也非常有用。

BINUTILS_DIR=binutils-2.15

GCC_DIR=gcc-3.3.6

GLIBC_DIR=glibc-2.3.2

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2

LINUX_DIR=linux-2.6.10

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

4.执行脚本

将Crosstool的脚本文件和配置文件准备好之后,开始执行arm.sh脚本来编译交叉编译工具。具体执行命令如下:

# cd crosstool-0.42

# ./arm.sh

经过数小时的漫长编译之后,会在/opt/crosstool目录下生成新的交叉编译工具,其中包括以下内容:

arm-linux-addr2line arm-linux-g++ arm-linux-ld arm-linux-size

arm-linux-ar arm-linux-gcc arm-linux-nm arm-linux-strings

arm-linux-as arm-linux-gcc-3.3.6 arm-linux-objcopy arm-linux-strip

arm-linux-c++ arm-linux-gccbug arm-linux-objdump fix-embedded-paths

arm-linux-c++filt arm-linux-gcov arm-linux-ranlib

arm-linux-cpp arm-linux-gprof arm-linux-readelf

5.添加环境变量

然后将生成的编译工具链路径添加到环境变量PATH上去,添加的方法是在系统/etc/ bashrc文件的最后添加下面一行,如图2.2所示。

用Vi编辑器在bashrc文件中添加环境变量

export PATH=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin:$PATH

设置完环境变量,也就意味着交叉编译工具链已经构建完成,然后就可以用2.2.1.8节中的方法进行测试刚刚建立的工具链,此处就不用再赘述。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top