打开crosstool-0.43目录下的arm9.dat文件,内容如下:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-unknown-linux-gnu
TARGET_CFLAGS="-O"这个文件一般用于设置一些变量,一般不用改,用默认即可!不过倒是可以将arm-unknown-linux-gnu改成arm-linux,到时候敲命令的时候也短些,所以我改了呵呵!
打开crosstool-0.43目录下的gcc-4.1.0-glibc-2.3.2-tls.dat文件(相信你也看到了,对应你上面选的),内容如下:
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.0
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.5
GLIBC_EXTRA_CONFIG="$GLIBC_EXTRA_CONFIG --with-tls --with-__thread --enable-kernel=2.4.18"
然后到网上去下载上面红色标记的几个源码包,一般是下*.tar.bz2文件,(好像crosstool自己可以到网上搜索代码包,不过我用的迅雷下快些)。不过我在第一次编译的时候却出错了,提示找不到glibc-linuxthreads-2.3.2.tar.gz文件,还好下了glibc-linuxthreads-2.3.2.tar.gz以后就成功了。下载后存放在/root/downloads目录下,再在/home/downloads下也放一份(不在/home/downloads目录下面放不知道能不能成功,管他的,鸟事一个,干脆就在这里也放嘛)注意,不需要解压!!NOW,IT'S OK!
3、进入crosstool-0.43目录,输入./demo-arm.sh,照着网上兄弟说的,似乎也应该就成功了。可是却出现了下面的提示:(仅部分)
+ abort 'Don'/''t run all.sh or crosstool.sh as root, it'/''s dangerous'
+ echo 'Don'/''t' run all.sh or crosstool.sh as root, 'it'/''s' dangerous
Don't run all.sh or crosstool.sh as root, it's dangerous
看到了吧,人家不让在root用户下允许,说的是 “ it's dangerous”,郁闷~~~!赶紧新建个账户,我建的 tyl ,在终端里面切换到 tyl :su - tyl , 然后运行。本来以为又要成功了的,结果又傻眼了,提示说的是在 tyl 下面没有写的权限!!NND!!!在网上找怎么样让在 tyl 用户下有写的权 限,忙乎了很久,却没有一点头绪。似乎卡死在这了。。。又在网上瞎搜索了下,终于找到答案,再切换回root用户!!直接在终端输入 su ,按提示输入密码,编译,一切OK。然后经过N(N>=4)小时的编译,就可以在你的/opt/crosstool目录中看到你想要的工具链,头文件,库文件等东东了!你可以把工具链所在目录加到环境变量PATH中: 终端中输入export PATH=/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/bin:$PATH
vi /etcbashrc,现在就可以用了。编一个最简单的 hello.c,输入 arm-linux-gcc -o hello hello.c,然后 file hello,看到
hello: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.18, dynamically linked (uses shared libs), for GNU/Linux 2.4.18, not stripped
说明成功了。但是现在还没有完全成功,如果你再打开一个终端,会提示你找不到 arm-linux-gcc 命令,还需要在 /etc/bashrc 的最后一行下面添加上 export PATH=/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/bin:$PATH
然后就OK
注意:crosstool -0.43目录下的PATCH目录中有各个工具链的补丁,如果在编译过程中有错误,可以在crosstool-0.43目录下build目录中的解压后的源文件中打上补丁(我没打补丁也编译成功了,呵呵)。