文档详情

在 Fedora 下建立 ARM-Linux 交叉编译环境.doc

发布:2016-04-11约8.59千字共9页下载文档
文本预览下载声明
在 Fedora 下建立 ARM-Linux 交叉编译环境 ??? 这几天忙着在Fedora 7下建立ARM-Linux的交叉编译环境。一开始参考了《构建嵌入式Linux系统》,这是一本很经典的书。上面介绍了建立ARM-Linux的交叉编译环境的许多知识,建立的原则和方法。我一开始想按照上面的一般方法,建立一个自己的、最新的交叉编译环境。但是 ,试了才知道这个过程是一个繁琐、耗时的工作。对于没有编译原理知识的我来说,更是耗时又毫无意义。引用《嵌入式设计及Linux驱动程序开发指南——基于ARM9处理器(第2版)》的原话:“在这项工作上浪费时间似乎没有任何意义,我也是这么认为的,”。由于在公司做事,时间不多,最后,我利用crosstool-0.43,自动完成了这项工作。在是否有必要自己建立交叉编译环境的问题上,我建议:如果你是一个学生,建议你认真学习编译原理、Linux和GNU的编译器原理,再一步一步的自己建立交叉编译环境(学生比较有时间,少泡MM,少玩游戏,时间就挤出来了。好好学习,以后MM来泡你,别人玩你编的游戏。)。如果你是程序员(不是交叉编译器的开发者),建议不要在这上面浪费时间了,赚钱要紧,把这个作为业余爱好吧! ??? 这次建立交叉编译环境我主要参考的资料是: 1、《构建嵌入式Linux系统》 2、《嵌入式设计及Linux驱动程序开发指南——基于ARM9处理器(第2版)》 3、《 ARM Linux 交叉编译 工具链 制作攻略》 4、《 AT91RM9200引导程序的建立--------建立交叉编译工具链》 ?? Host CPU:i686 ??? ??? RAM: 768MB ??????? OS: Fedora 7 ?? TARGET CPU :ARM9TDMI ??? ?? ?? OS : Linux-/ ??? 我在Fedora7下快速、成功地建立ARM-Linux交叉编译环境,是看了《嵌入式设计及Linux驱动程序开发指南——基于ARM9处理器(第2版)》中关于crosstool的介绍。 ??? crosstool是由美国人Dan Kegel(毕业于加(利福尼亚)州工学院)开发的一套可以自动编译不同匹配版本gcc和glibc,并作测试的脚本程序。写这篇文章时的最新版本是0.43。 ??? 下载地址/crosstool/crosstool-0.43.tar.gz ????在/crosstool/crosstool-0.43/buildlogs/可以看到各种CPU和GCC+Glibc版本那些已经编译成功,那些部分成功,那些彻底失败。如果你不是编译器开发者,就按着上面做吧。 ????你也可以到/crosstool/#download看看是否有更新的版本。 ????? ????第一步:保证你装Fedora7时,安装了需要的软件开发工具。在《 ARM Linux 交叉编译 工具链 制作攻略》中说:“0、制作之前确保你的机子上有如下几个工具:bison、flex、build-essential。”?? 我的机子上有bison和flex,至于build-essential是包含一个在建立deb包过程中起关键作用的包的信息列表,Fedora下并不需要。 ? ?? 第二步:下载crosstool,并解压到你的工作目录。?? tar -xzvf crosstool-0.43.tar.gz cd crosstool-0.43 ? ?? 第三步:察看crosstool文件夹中,.sh脚本和.dat配置文件。找到你要交叉编译的CPUdemo-arm9tdmi.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=/home/tekkaman/working/source RESULT_TOP=/home/tekkaman/working/crosstool //这两行是需要修改的参数,TARBALLS_DIR是下载的工具源码压缩包的存放目录。 //RESULT_TOP是要生成的工具链的存放目录,一定要改到有写权限的目录,不然无法编译。 //如用root登录进行编译,可能会出错,详情请见后记! //以上是我的修改,他人可以根据实际情况修改。 export TARBALLS_DIR RESULT_TOP GCC_LANGUAGES=c,
显示全部
相似文档