文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发软件工程如何为嵌入式开发建立交叉编译环境
精品推荐
特别推荐
·Tomcat中用web.xml控制Web应用详解
·计算机网络工程课程讲解
·COM, COM+ and .NET 的区别
·ISO9000:2000 质量管理八大原则(1)
·Struts框架及其在Web开发中的应用
·献给汇编初学者-函数调用堆栈变化分析
·质量管理的十三项步骤和八项原则(1)
·质量管理体系审核全解(1)
·WinCE.Net平台下电力巡检仪数据同步研究与实现
·黑盒测试和白盒测试
热点TOP10
·编写质量手册
·Visual Studio 2005集成开发环境图解
·清除window 2000/XP系统中的无用设备的驱动程序
·编程不难学?
·LINQ 性能分析系列之传说中的LINQ
·.NET设计模式之工厂方法模式
·建模过程的盲点:软件集成中的软知识
·用XMLTextReader类加速.NET中XML存取
·Rational统一过程
·揭开.NET消息循环的神秘面纱

如何为嵌入式开发建立交叉编译环境

日期:2008年5月16日 作者: 查看:[大字体 中字体 小字体]


随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。

在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在你的强大的pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。交叉编译工具主要由 binutils、gcc 和 glibc 几个部分组成。有时出于减小 libc 库大小的考虑,你也可以用别的 c 库来代替 glibc,例如 uClibc、dietlibc 和 newlib。建立一个交叉编译工具链是一个相当复杂的过程,如果你不想自己经历复杂的编译过程,网上有一些编译好的可用的交叉编译工具链可以下载。

下面我们将以建立针对arm的交叉编译开发环境为例来解说整个过程,其他的体系结构与这个相类似,只要作一些对应的改动。我的开发环境是,宿主机 i386-redhat-7.2,目标机 arm。

这个过程如下

1. 下载源文件、补丁和建立编译的目录

2. 建立内核头文件

3. 建立二进制工具(binutils)

4. 建立初始编译器(bootstrap gcc)

5. 建立c库(glibc)

6. 建立全套编译器(full gcc)

下载源文件、补丁和建立编译的目录

1. 选定软件版本号

选择软件版本号时,先看看glibc源代码中的INSTALL文件。那里列举了该版本的glibc编译时所需的binutils 和gcc的版本号。例如在 glibc-2.2.3/INSTALL 文件中推荐 gcc 用 2.95以上,binutils 用 2.10.1 以上版本。

我选的各个软件的版本是:

linux-2.4.21+rmk2
binutils-2.10.1
gcc-2.95.3
glibc-2.2.3
glibc-linuxthreads-2.2.3

如果你选的glibc的版本号低于2.2,你还要下载一个叫glibc-crypt的文件,例如glibc-crypt-2.1.tar.gz。 Linux 内核你可以从www.kernel.org 或它的镜像下载。

Binutils、gcc和glibc你可以从FSF的FTP站点ftp://ftp.gun.org/gnu/ 或它的镜像去下载。在编译glibc时,要用到 Linux 内核中的 include 目录的内核头文件。如果你发现有变量没有定义而导致编译失败,你就改变你的内核版本号。例如我开始用linux-2.4.25+vrs2,编译glibc-2.2.3 时报 BUS_ISA 没定义,后来发现在 2.4.23 开始它的名字被改为 CTL_BUS_ISA。如果你没有完全的把握保证你改的内核改完全了,就不要动内核,而是把你的 Linux 内核的版本号降低或升高,来适应 glibc。

Gcc 的版本号,推荐用 gcc-2.95 以上的。太老的版本编译可能会出问题。Gcc-2.95.3 是一个比较稳定的版本,也是内核开发人员推荐用的一个 gcc 版本。

如果你发现无法编译过去,有可能是你选用的软件中有的加入了一些新的特性而其他所选软件不支持的原因,就相应降低该软件的版本号。例如我开始用 gcc-3.3.2,发现编译不过,报 as、ld 等版本太老,我就把 gcc 降为 2.95.3。太新的版本大多没经过大量的测试,建议不要选用。


如何为嵌入式开发建立交叉编译环境(图一) 如何为嵌入式开发建立交叉编译环境(图二)
回页首

2. 建立工作目录

首先,我们建立几个用来工作的目录:

在你的用户目录,我用的是用户liang,因此用户目录为 /home/liang,先建立一个项目目录embedded。




$pwd	
/home/liang
$mkdir embedded

再在这个项目目录 embedded 下建立三个目录 build-tools、kernel 和 tools。

build-tools-用来存放你下载的 binutils、gcc 和 glibc 的源代码和用来编译这些源代码的目录。

kernel-用来存放你的内核源代码和内核补丁。

tools-用来存放编译好的交叉编译工具和库文件。




$cd embedded
$mkdir  build-tools kernel tools

执行完后目录结构如下:




$ls embedded
build-tools kernel tools

3. 输出和环境变量

我们输出如下的环境变量方便我们编译。



[1] [2] [3] [4] [5] [6] 下一页 




上一篇:小心借情人节传播的QQ尾巴(第3版)

下一篇:对软件项目管理的探讨

相关文章:
·如何建立QQ空间相册
·建立自由的会计日期的报表--1.4.让报表处理期初和期末之间的数据
·巧用宽带路由器建立个人网站
·如何建立一个网站?规划、设计、目的、原则、宣传
·利用Delphi 5.0开发OLE自动化控制器操纵Excel
·Authorware实战开发专题(4-1)
·Authorware实战开发专题(4-2)
·如何建立自己的博客
·J2ME程序开发初学者快速入门的九大要点
·Authorware实战开发专题(3-2)
相关软件:
·自己动手建立企业网站
·中国少年儿童智力开发百科全书(上中下)高清PDF全彩图书
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·Windows环境下32位汇编语言程序设计
·Windows 程式开发设计指南 中文版
·Java开发指南--Servlets和JSP篇
·全脑开发大师IQ EQ MQ
·中国21世纪人口、环境与发展白皮书(一)
·vb6开发宝典
·新经济环境下的管理会计(周亚娜)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot