Chinaunix首页 | 论坛 | 博客
  • 博客访问: 494786
  • 博文数量: 102
  • 博客积分: 4001
  • 博客等级: 上校
  • 技术积分: 756
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-21 16:01
文章分类

全部博文(102)

文章存档

2011年(1)

2010年(1)

2009年(56)

2008年(44)

我的朋友

分类: LINUX

2008-11-20 18:38:11

1.准备以下软件包:
crosstool-0.42.tar.gz(必须)
以下软件包可选则下载(因为corsstool在安装过程中回自动下载)
gcc-3.3.6.tar.bz2
binutils-2.15.tar.bz2
linux-2.6.10.tar.gz
glibc-2.3.2.tar.gz
glibc-linuxthreads-2.3.2.tar.gz
linux-libc-headers-2.6.12.0.tar.bz2 ()

2.将crosstool-0.42.tar.gz放在$home目录下
代码:
cd $home
mkdir downloads

将以下包放在新建的downloads目录下(也可以空着,cross_tool会自动从网上下载)
gcc-3.3.6.tar.bz2
binutils-2.15.tar.bz2
linux-2.6.10.tar.gz
glibc-2.3.2.tar.gz
glibc-linuxthreads-2.3.2.tar.gz
linux-libc-headers-2.6.12.0.tar.bz2
代码:
sudo mkdir /opt/crosstool
sudo chown  youname /opt/crosstool
tar -xvzf crosstool-0.42.tar.gz
cd crosstool-0.42
cp demo-arm.sh arm.sh
vi arm.sh

修改arm.sh,内容如下:
代码:
#!/bin/sh
set -ex
TARBALLS_DIR=$home/downloads
RESULT_TOP=/opt/crosstool
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
mkdir -p $RESULT_TOP
eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat`  sh all.sh --notest
echo Done.

代码:
vi arm.dat

修改arm.dat,内容如下:
代码:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux
TARGET_CFLAGS="-O"

代码:
[b]vi gcc-3.3.6-glibc-2.3.2.dat[/b]

修改arm.dat,内容如下:
代码:
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


3.获得必要软件包
代码:
sudo apt-get install build-essential bison flex
sudo apt-get install gcc-3.4
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc

注意:此处用gcc-3.4替代了系统自带编译器,待安装后可以用同样方法改回来

4.安装(会出错)
代码:
./arm.sh


5.修改文件
代码:
vi $home/crosstool-0.42/build/arm-linux/gcc-3.3.6-glibc-2.3.2/build-glibc/csu/version_info.h

修改version_info.h文件,内容如下:
代码:
"Compiled on a Linux >>2.6.24-19-generic<< system on 2008-10-11."
"Available extensions:"
"GNU libio by Per Bothner\n"
"crypt add-on version 2.1 by Michael Glad and others\n"
"linuxthreads-0.10 by Xavier Leroy\n"
"BIND-8.2.3-T5B\n"
"libthread_db work sponsored by Alpha Processor Inc\n"
"NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk\n"


6.再次安装(时间较长)
代码:
./arm.sh
export PATH=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin:$PATH
sudo vi /etc/bash.bashrc

在文件最后一行加入:
代码:
export PATH=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin:$PATH


7.安装完毕
代码:
cd /opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin
ls


备注:
1.上述4,5,6步骤可以变通一下,手动将glibc-2.3.2.tar.gz解压,修改version_info.h文件后再编译
2.如果采用不同版本软件包可以参看
3.本方法参考了网上一些资料,对这些资料的作者表示感谢!
阅读(2616) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

tezuka1582008-11-21 10:15:31

原文作者说这样就可以解决了,但事实上我用的也是ubuntu,却会报错,我又找到一篇东西解决了这个问题,后来编译没什么问题了 In file included from version.c:33: /home/skorpio/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-glibc/csu/version-info.h:2:1: missing terminating " character /home/skorpio/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-glibc/csu/version-info.h:3:1: missing terminating " character make[2]: *** [/home/skorpio/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-glibc