Ubuntu 10.10下ARM GCC交叉编译器
来源:互联网 发布:西部数码域名怎么解析 编辑:程序博客网 时间:2024/05/21 04:23
转自:http://hi.baidu.com/%D0%A1%85%C4%B6%AA/blog/item/b4c68e044df8e101728b65ec.html
1.下载制作交叉编译环境的工具:crosstool(crosstool-0.43.tar.gz)
2.下载编译过程需要用到的源代码:
binutils-2.15.tar.bz2
gcc-3.4.5.tar.bz2
glibc-2.3.6.tar.bz2
glibc-linuxthreads-2.3.6.tar.bz2
linux-2.6.26.5.tar.bz2
linux-libc-headers-2.6.12.0.tar.bz2
说明:具体版本号可以有一些不同,后面说讲如何设置。
以上七个软件建议放在同一目录下,如~/linux/download 目录下。
3.编译过程需要用到以下几个软件,系统本身没有安装,可以运行安装命令提前做好,因为编译一次至少要花半个小时,如果因为依赖软件没有安装中途会报错退出,只有从头再来,那样很浪费时间的。
sudo apt-get install bison flex build-essential patch libncurses5-dev
具体工作步骤:
1、修改系统配置
1.1 将GCC版本设置为4.1
Ubuntu 10.10 默认安装的 gcc 版本为4.4,这个版本对于语法要求较高,编译会出错,目前不宜选用,于是选择了gcc-4.1,但并不需要卸载gcc-4.4。
sudo apt-get install gcc-4.1
sudo rm /usr/bin/gcc (删除GCC,它只是个到gcc-4.3.2的软链接文件)
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的软链接)
1.2、修改sh版本
如果运行
ls -la /bin/sh
看到链接的是 dash ,则请运行以下命令
sudo dpkg-reconfigure dash
选择 no 以删除 dash
此处如果不改好的话,编译时会出现错误
2.解压软件包,并进入该目录,查看重要的脚本文件。
$cd downloads
$tar –zxvf crosstool-0.43.tar.gz
$cd crosstool-0.43
在此目录下可以看到有很多.sh脚本和.dat配置文件,每一个支持的处理器都有它所相应的脚本。http://www.linuxidc.com/假如选用demo-arm- softfloat.sh 就是建立目标为支持软浮点的arm交叉编译工具链。
3.修改demo-arm-softfloat.sh
$vim demo-arm-softfloat.sh
修改下面两句
TARBALLS_DIR=$HOME/downloads //表示下载的源码的存放目录
RESULT_TOP=/opt/crosstools //表示生成的工具链的存放目录
为:
TARBALLS_DIR=/home/linux/downloads(源码存放目录)
RESULT_TOP=/home/linux/crosstools(生成工具链目录)
4.修改 gcc-3.4.5-glibc-2.3.6.dat
$ vim 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
5.修改glibc-2.3.6.tar.bz2包内的configure文件
将
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.1[3-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
修改为
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.[1-2][0-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
还有3981行也有这样的代码 一个是ld,一个是ar
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 /home/linux
vim .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.4
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
重新安装dash
sudo dpkg-reconfigure dash
选择 yes 以重新安装 dash
- Ubuntu 10.10下ARM GCC交叉编译器
- ubuntu下安装arm-linux-gcc交叉编译器
- 在ubuntu下安装交叉编译器arm-linux-gcc步骤
- 构建arm linux gcc 交叉编译器 (下) gcc v4
- ubuntu 10.04下安装arm交叉编译器
- ubuntu 10.04下安装arm交叉编译器
- Ubuntu下安装ARM交叉编译器
- Ubuntu下安装ARM交叉编译器过程
- Ubuntu下安装arm linux交叉编译器
- Ubuntu下安装ARM交叉编译器
- ubuntu 下交叉编译器arm-linux-gcc-4.3.2.tar.tgz的安装
- ubuntu 12.04 交叉编译器(arm-linux-gcc-4.4.3)
- ubuntu 12.04交叉编译器(arm-linux-gcc-4.4.3)
- Ubuntu 12.10安装交叉编译器arm-none-linux-gnueabi-gcc
- Ubuntu 12.10安装交叉编译器arm-none-linux-gnueabi-gcc
- Ubuntu 12.10安装交叉编译器arm-none-linux-gnueabi-gcc
- 交叉编译器arm-linux-gcc
- 交叉编译器arm-linux-gcc
- 关于智能手机分辨率
- Android学习-MP3播放器
- linux 封包
- 关于手机定时服务的小知识(Android学习随笔六)
- 如何让apk开机自启动
- Ubuntu 10.10下ARM GCC交叉编译器
- 常对象成员
- 在别人贪婪的时候恐惧;在别人恐惧的时候贪婪
- traceroute 一次输出一跳的信息
- Rails Demo示例
- ASP.NET与Silverlight简单对比
- CGLIB动态代理介绍和实例讲解
- 20110822
- 管控内网安全 六项措施守护企业核心机密