Chinaunix首页 | 论坛 | 博客
  • 博客访问: 214734
  • 博文数量: 20
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-14 18:47
文章分类

全部博文(20)

文章存档

2009年(6)

2008年(14)

我的朋友

分类: LINUX

2008-03-14 20:10:53

    因为在网上下载的gcc3.4.1编译uboot1.2的时候出现错误,所以决定在自己的PC环境编译一个交叉编译环境。

目标板(Nano2410)------------------------

CPU:        S3C2410X

SDRAM:    HY57V561620(32MB)

FLASH:    K9F1208(64MB)

NET:         CS8900

 

HOST---------------------------------------

Linux Realse Version:       Fecora Cor 8 (FC8)

Compiler:                             gcc-4.1.2    


    1.从 下载最新的crosstool0.43。 
    2.解压crosstool0.43到/opt下。在/opt会有一个目录crosstool0.43
    3.将crosstool0.43更名为crosstool
       mv crosstool0.43 crosstool
    4. 修改crosstool所属用户为当前非root用户。

[kevin@localhost opt]$ sudo chown -R kevin:kevin crosstool

    5.建立下载文件夹。crosstool在安装期间会从网络下载相关文件到该目录。


[kevin@localhost opt]$ mkdir ~/downloads


    6.在crosstool中我们将要使用的可执行文件是demo-arm9tdmi.sh.内容如下

#eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest
eval `cat arm9tdmi.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest

最后一行是我自己添加的。看看gcc-4.1.1-glibc-2.3.2.dat文件内容


 

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=
linux-libc-headers-2.6.12.0
GDB_DIR=gdb-6.5

因为我要用此编译器编译linux-2.6.24内核,所以把LINUX_DIR指定的内核改为inux-2.6.24
从以上信息可以看出我们将要使用如下编译工具:
   
binutils-2.16.1   下载地址:
    gdb-6.5           下载地址:
    gcc-3.3.6         下载地址:
    glibc-2.3.2       下载地址:
    linux-2.6.24      下载地址:
    linux-libc-headers-2.6.12.0   下载地址:
在编译的过程中会自动从网络下载以上文件到~/downloads文件夹。速度实在是无法忍受,建议在在windows里面用迅雷或其他下载工具把以上文件全部下载下来,然后copy到downloads文件夹中。安装的时候发现文件存在就不会再从网络下载了,这样可以大大缩短编译时间。

    7.编译生成的gcc默认文件名为arm-9tdmi-linux-gun-gcc.bin. 如果不想用改名称,比如我想用arm-linux-gcc.bin,可以修改文件arm9tdmi.dat第二行。
    8.以上准备工作后,就可以开始编译了,这个过程比较长,在我的电脑上用了好几个小时:)    ./demo-arm9tdmi.sh
    9.编译生成的文件位于crosstool/gcc-4.1.1-glibc-2.3.2.  

阅读(6256) | 评论(3) | 转发(0) |
0

上一篇:没有了

下一篇:使用hgfs实现vmare文件传输

给主人留下些什么吧!~~

zuoan9112009-05-12 20:20:26

找到办法了,呵呵。 直接用迅雷下载,不用登陆网站,地址如下: 【crosstool-0.43.tar.gz】 http://kegel.com/crosstool/crosstool-0.43.tar.gz 【binutils-2.16.1.tar.bz2】 http://ftp.gnu.org/gnu/binutils/binutils-2.16.1.tar.bz2 【glibc-2.3.2.tar.bz2】http://ftp.gnu.org/gnu/glibc/glibc-2.3.2.tar.bz2 【glibc-linuxthreads-2.3.2.tar.bz2】http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.2.tar.bz2 【linux-2.6.24.tar.bz2】http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2 【gdb-6.5.tar.bz2】http://ftp.gnu.org/gnu/gdb/gdb-6.5.

chinaunix网友2009-05-12 19:52:47

ftp://ftp.gnu.org上不去,请问怎么办呢?还有其他的资源站点可以下载吗

zyb198312122008-06-11 16:14:47

我参照您的说明完成了所有步骤,但是在编译时没有成功。 我在编译过程中发现gcc-4.1.1-glibc-2.3.2.dat文件内容应该做一些修改: 应该将GCC_DIR=gcc-4.1.1修改为GCC_DIR=gcc-3.3.6,否则编译时会找不到gcc-4.1.1.tar.bz2. 编译并没执行到“done“的打印,生成的应用程序有as/ld/objdump/objcopy等,但是没有gcc。 请问如何解决这个问题?谢谢!