使用crosstool-0.43构建arm交叉编译工具链
2012-04-22 01:58
441 查看
ubuntu10.04环境,过程中遇到的问题及解决办法在下文附上。
一、准备工作
1、下载制作交叉编译环境的工具:crosstool(crosstool-0.43.tar.gz)。
root@david:/home/david/temp# wgethttp://www.kegel.com/crosstool/crosstool-0.43.tar.gz
2、下载编译过程需要用到的源代码:
binutils-2.15.tar.bz2 ——
http://ftp.gnu.org/gnu/binutils/
gcc-3.4.5.tar.bz2 —— http://ftp.gnu.org/gnu/gcc/
glibc-2.3.6.tar.bz2 ——
ftp://ftp.gnu.org/gnu/glibc/
glibc-linuxthreads-2.3.6.tar.bz2 ——ftp://ftp.gnu.org/gnu/glibc/
linux-2.6.8.tar.bz2—— http://ftp.cc.uoc.gr/mirrors/ftp.kernel.org/pub/linux/kernel
linux-libc-headers-2.6.12.0.tar.bz2——http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-2.6.12.0.tar.bz2
留意:glbc与glibc-linuxtreads的版本最好一致,不然在编译过程中会出问题。如果提示不能解压.tar.bz2的压缩文件,我重新下载了.tar.gz文件解决。
将这几个文件放在同一个文件夹中,如/home/david/share/tools。
二、安装步骤
1、 将GCC版本设置为4.1
Ubuntu 10.04 默认安装的 gcc 版本为4.4,这个版本对于语法要求较高,编译会出错,目前不宜选用,于是选择了gcc-4.1,但并不需要卸载gcc-4.4。
sudo apt-get install gcc-4.1
sudo rm /usr/bin/gcc (删除GCC,它只是个到gcc-4.4的软链接文件)
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的软链接)
2、修改sh版本
如果运行ls -la /bin/sh,看到链接的是 dash ,则请运行以下命令
$sudo dpkg-reconfigure dash
选择 no 以删除 dash
此处如果不改好的话,编译时会出现错误
3、解压软件包,并进入该目录,查看重要的脚本文件。
$cd downloads
$tar –zxvf crosstool-0.43.tar.gz
$cd crosstool-0.43
在此目录下可以看到有很多.sh脚本和.dat配置文件,每一个支持的处理器都有它所相应的脚本。www.linuxidc.com假如选用demo-arm- softfloat.sh 就是建立目标为支持软浮点的arm交叉编译工具链。
4、修改demo-arm-softfloat.sh
$vi demo-arm-softfloat.sh
修改下面两句
TARBALLS_DIR=/home/david/share/tools//表示下载的源码的存放目录
RESULT_TOP=/opt/crosstools //表示生成的工具链的存放目录
为:
TARBALLS_DIR/home/david/share/tools(源码存放目录)
RESULT_TOP=/opt/crosstools(生成工具链目录)
5、修改 gcc-3.4.5-glibc-2.3.6.dat
$ vi gcc-3.4.5-glibc-2.3.6.dat
修改内容为:
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.5
GLIBC_DIR=glibc-2.3.6
LINUX_DIR=linux-2.6.26.5
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
6、$ ./ demo-arm-softfloat.sh
这个过程较长(半个小时左右)
7、修改环境变量
修改环境变量有多种方法我们介绍两种
(1) 第一种方法:在当前用户目录的.bashrc中添加如下内容
$export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:
(2) 第二种方法:或直接修改/home/linux/.bashrc
cd ~
vi .bashrc
添加如下内容:
PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:
然后
source .bashrc
8、执行如下命令
$ arm-softfloat-linux-gnu-gcc -v
显示
Reading specs from /home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/gcc/arm-softfloat-linux-gnu/3.4.5/specs
Configured with: /home/david/downloads/crosstool-0.43/build/arm-softfloat-linux-gnu/gcc-3.4.5-glibc-2.3.6/gcc-3.4.5/configure --target=arm-softfloat-linux-gnu -- host=i686-host_pc-linux-gnu --prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu
--with-float=soft --with- headers=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/include --with-local-prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.5
ok交叉编译环境创建成功!
9、恢复我们修改的系统配置:
恢复gcc为4.3
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.3 /usr/bin/gcc
重新安装dash
sudo dpkg-reconfigure dash
选择 yes 以重新安装 dash
一、准备工作
1、下载制作交叉编译环境的工具:crosstool(crosstool-0.43.tar.gz)。
root@david:/home/david/temp# wgethttp://www.kegel.com/crosstool/crosstool-0.43.tar.gz
2、下载编译过程需要用到的源代码:
binutils-2.15.tar.bz2 ——
http://ftp.gnu.org/gnu/binutils/
gcc-3.4.5.tar.bz2 —— http://ftp.gnu.org/gnu/gcc/
glibc-2.3.6.tar.bz2 ——
ftp://ftp.gnu.org/gnu/glibc/
glibc-linuxthreads-2.3.6.tar.bz2 ——ftp://ftp.gnu.org/gnu/glibc/
linux-2.6.8.tar.bz2—— http://ftp.cc.uoc.gr/mirrors/ftp.kernel.org/pub/linux/kernel
linux-libc-headers-2.6.12.0.tar.bz2——http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-2.6.12.0.tar.bz2
留意:glbc与glibc-linuxtreads的版本最好一致,不然在编译过程中会出问题。如果提示不能解压.tar.bz2的压缩文件,我重新下载了.tar.gz文件解决。
将这几个文件放在同一个文件夹中,如/home/david/share/tools。
二、安装步骤
1、 将GCC版本设置为4.1
Ubuntu 10.04 默认安装的 gcc 版本为4.4,这个版本对于语法要求较高,编译会出错,目前不宜选用,于是选择了gcc-4.1,但并不需要卸载gcc-4.4。
sudo apt-get install gcc-4.1
sudo rm /usr/bin/gcc (删除GCC,它只是个到gcc-4.4的软链接文件)
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的软链接)
2、修改sh版本
如果运行ls -la /bin/sh,看到链接的是 dash ,则请运行以下命令
$sudo dpkg-reconfigure dash
选择 no 以删除 dash
此处如果不改好的话,编译时会出现错误
3、解压软件包,并进入该目录,查看重要的脚本文件。
$cd downloads
$tar –zxvf crosstool-0.43.tar.gz
$cd crosstool-0.43
在此目录下可以看到有很多.sh脚本和.dat配置文件,每一个支持的处理器都有它所相应的脚本。www.linuxidc.com假如选用demo-arm- softfloat.sh 就是建立目标为支持软浮点的arm交叉编译工具链。
4、修改demo-arm-softfloat.sh
$vi demo-arm-softfloat.sh
修改下面两句
TARBALLS_DIR=/home/david/share/tools//表示下载的源码的存放目录
RESULT_TOP=/opt/crosstools //表示生成的工具链的存放目录
为:
TARBALLS_DIR/home/david/share/tools(源码存放目录)
RESULT_TOP=/opt/crosstools(生成工具链目录)
5、修改 gcc-3.4.5-glibc-2.3.6.dat
$ vi gcc-3.4.5-glibc-2.3.6.dat
修改内容为:
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.5
GLIBC_DIR=glibc-2.3.6
LINUX_DIR=linux-2.6.26.5
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
6、$ ./ demo-arm-softfloat.sh
这个过程较长(半个小时左右)
7、修改环境变量
修改环境变量有多种方法我们介绍两种
(1) 第一种方法:在当前用户目录的.bashrc中添加如下内容
$export PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:
(2) 第二种方法:或直接修改/home/linux/.bashrc
cd ~
vi .bashrc
添加如下内容:
PATH=$PATH:/home/linux/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin:
然后
source .bashrc
8、执行如下命令
$ arm-softfloat-linux-gnu-gcc -v
显示
Reading specs from /home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/gcc/arm-softfloat-linux-gnu/3.4.5/specs
Configured with: /home/david/downloads/crosstool-0.43/build/arm-softfloat-linux-gnu/gcc-3.4.5-glibc-2.3.6/gcc-3.4.5/configure --target=arm-softfloat-linux-gnu -- host=i686-host_pc-linux-gnu --prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu
--with-float=soft --with- headers=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/include --with-local-prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.5
ok交叉编译环境创建成功!
9、恢复我们修改的系统配置:
恢复gcc为4.3
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.3 /usr/bin/gcc
重新安装dash
sudo dpkg-reconfigure dash
选择 yes 以重新安装 dash
相关文章推荐
- 构建ARM Linux交叉编译工具链--Crosstool
- 构建ARM Linux交叉编译工具链--Crosstool
- 在linux下使用crosstool-0.43制作自己的arm交叉编译环境 (转)
- 2.使用crosstool制作ARM-Linux交叉编译工具链
- 构建ARM Linux交叉编译工具链 详解
- 使用Qt ARM交叉编译提示“此qt版本具有一个未知的工具链”
- crosstool-ng制作交叉编译工具链(armv6)
- 使用arm-none-gnueabi交叉编译工具编译osip2、eXosip库
- 用crosstool-ng建立自己的ARM交叉编译工具链 (适用于S3C6410以及其它处理器)
- 构建ARM Linux交叉编译工具链--Crosstool
- 利用crosstool-ng搭建arm-linux交叉编译工具
- 构建ARM Linux交叉编译工具链
- 使用crosstool构建arm交叉编译链遇到的问题汇总
- 手工从零开始建立ARM交叉编译工具链,并使用Eclipse+J-Link ARM-OB STM32调试S5PV210
- 交叉编译工具和qt安装,终端使用qmake编译arm版本可执行文件的方法
- [Linux]:crosstool制作arm-linux交叉编译工具链
- 构建ARM Linux交叉编译工具链 详解
- Linux 系统下ARM Linux交叉编译环境----crosstool工具
- ARM 构建交叉编译工具链
- 使用uclibc的buildroot制作交叉编译工具链 ,arm-linux-gcc