以下言论均来是网上共享~自己只是验证了一下~
第一步:
网上说要下好这些东西哦~
Bison
flex
build-essential
patch
libncurses5-dev
gcc-3.4
sudo apt-get install gcc-3.4
这些我都是直接用ubuntu下载~(慢但是文件也还小)
不下好就会报错~
第二步:
选择可用平台~
乖乖听话把东西下好~
有以下的东西~
1:crosstool-0.43.tar.gz(http://kegel.com/crosstool/crosstool-0.43.tar.gz )
2:gcc-3.3.6.tar.bz(
http://ftp.gnu.org/gcc )
3:gcc-4.0.2.tar.bz(
http://ftp.gnu.org/gnu/gcc/ )
4:glibc-2.3.2.tar.bz(
http://ftp.gnu.org/gnu/glibc )
5:binutils-2.16.1.tar.bz(
http://ftp.gnu.org/gnu/binutils/ )
6:linux-libc-headers-2.6.12.0.tar.bz(
http://ftp.gnu.org/gnu/libc )
7:linux-2.6.15.4.tar.bz
(
http://ftp.kernel.org/pub/linux/kernel/v2.6/ )
8:
gdb-6.8.tar.bz ( http://ftp.kernel.org/pub/linux/kernel/v2.6/ )
这里下载很慢~用的资源好像chinaunix有资源这样就不用在上述网在上下了~(因为有一些我下了好几天还在下要是大家不愿等一个漫长的下载时间的话我已经上传了这些资料希望大家有用)
然后终于开始工作了~可以完全脱机了~
我建了以下目录
mkdir ~/cross
cd cross
mkdir ~/cross/scoure
这个是要把2~7这几个资源放在这个目录下
1放在cross下吧~要不对不起我建的目录
cd /opt
sudo mkdir crosstool(这里因为权限问题要用超级用户)
这个是要把交叉环境建在这个目录上
下面解压
tar -jvxz
crosstool-0.43.tar.gz
(解压吧)
cd crosstool-0.43
为了怕自己刚刚上手不知道改了什么犯错~
我先copy下吧
cp demo-arm.sh arm.sh
或
cp demo-arm9tdmi.sh arm9.sh
下面进行的是改参数了
#!/bin/sh
# This script has one line for each known working toolchain
# for this architecture. Uncomment the one you want.
# Generated by generate-demo.pl from buildlogs/all.dats.txt
set -ex
TARBALLS_DIR=~/corss/scoure
RESULT_TOP=/opt/crosstool
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
# Really, you should do the mkdir before running this,
# and chown /opt/crosstool to yourself so you don't need to run as root.
mkdir -p $RESULT_TOP
#eval `cat arm.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest
#eval `cat
arm
.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat
arm
.dat gcc-2.95.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat
arm.
dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat
arm.
dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.3.6-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.0.2-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.1.0-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat
arm.dat
gcc-4.1.0-glibc-2.3.2.-tls.dat` sh all.sh --notest
eval `cat arm.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest --gdb (我当时马虎,修改了各个版本号但是忘了去掉-tls
他一直要下载~下载的速度汗)
(按下A键表示退出命令状态进入修改状态~按下ALT+C表示退出修改状态~并进入命令状态
:q退出无保存~:x有保存退出)
echo Done.
修改第二个文件
vi arm.dat
把中间改成 arm-linux
就可以了
修改第三个文件
vi gcc-4.0.2-glibc-2.3.2(也就是上面最后的修改内容)
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.1
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.24
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GDB_DIR=gdb-6.5
(你有什么资源就填上吧~要不它会认为没有就又要下载了)
我改
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.0.2
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.8
下面先切换系统自带GCC
sudo rm /usr/bin/gcc
(删除GCC,它只是个到gcc-4.3.2的软连接文件)
sudo ln
-s /usr/bin/gcc-3.4/usr/bin/gcc
(建立GCC到gcc-4.1的软连接)
下面是漫长的时间了(执行./arm.sh)
下面要做的事就是建立搜索路径~
export
PATH=/opt/crosstool/gcc-4.0.2-glib2.3.2/arm-linux/bin:$PATH
在~/下
sudo vi /etc/bash .bashrc
(最后一行加上上面那就话)
最后就是激动人心的验收了~~~~ /(*_*)/
关掉VIVI~在重开一次~
输入
arm-linux-