在 Fedora 下建立 ARM-Linux 交叉编译环境.doc
文本预览下载声明
在 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.gzcd 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.txtset -exTARBALLS_DIR=/home/tekkaman/working/sourceRESULT_TOP=/home/tekkaman/working/crosstool//这两行是需要修改的参数,TARBALLS_DIR是下载的工具源码压缩包的存放目录。//RESULT_TOP是要生成的工具链的存放目录,一定要改到有写权限的目录,不然无法编译。//如用root登录进行编译,可能会出错,详情请见后记!//以上是我的修改,他人可以根据实际情况修改。export TARBALLS_DIR RESULT_TOPGCC_LANGUAGES=c,
显示全部