构建linux系统下gcc交叉编译器

构建linux系统下gcc交叉编译器

ID:19625709

大小:66.50 KB

页数:12页

时间:2018-10-04

构建linux系统下gcc交叉编译器_第1页
构建linux系统下gcc交叉编译器_第2页
构建linux系统下gcc交叉编译器_第3页
构建linux系统下gcc交叉编译器_第4页
构建linux系统下gcc交叉编译器_第5页
资源描述:

《构建linux系统下gcc交叉编译器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、构建Linux系统下的gcc交叉编译器ibm.com/developerWorks目录第1节.开始之前2第2节.交叉编译3第3节.准备工作5第4节.配置和构建8第5节.安装和使用交叉编译器9第6节.总结及资源10第1节.开始之前关于这本指南很多时候,你所使用的开发平台和你的开发所面向的机器并不一致。比如,你可能想在装有x86/Linux的膝上电脑上构建一个PowerPC/Linux的应用程序。使用GNU工具包中的gcc,gas和ld工具,可以指定并构建一个交叉编译器,使你能够在本地机器上创建面向其它目标机器

2、的应用程序。稍微用些功夫,你甚至可以搭建出一个环境,从而能够针对各种不同的目标而构建应用程序。在本指南中,我描述了在系统上构建交叉编译器所需的过程。我还讨论了构建一个完全的面向一系列目标的环境,展示了如何与distcc和ccache工具结合使用,并且描述了保持最新版本以及在新开发平台上进行更新,所需的方法。构建交叉编译器,需要对构建一个典型的UNIX开源项目有基本的了解,具有一些基本的shell技能,还要有相当的耐心。前提条件为了构建交叉编译器,你需要一个可以工作的C编译器(通常是gcc)。大多数基于Lin

3、ux/UNIX的操作系统都自带有C编译器。还需要用来构建交叉编译器的各种工具的源代码。你可以从GNU(http://www.gnu.org)网站上下载GNU工具(请尽量使用本地镜像)。除了这些工具以外,你还需要有目标平台的头文件拷贝。对于Linux系统下的目标,可以使用Kernel.org(http://www.kernel.org)的通用Linux内核头文件。关于作者MartinC.Brown曾任职过IT主管,具有交叉平台整合经验。作为一位热心的开发者,曾为巨头客户包括HP和Oracle,开发过动态网站,

4、并且是Foodware.net的技术主管。MC(为人熟知的名字)现在是自由作家和顾问,作为SME和微软密切合作,是LinuxWorld杂志的LAMP技术编辑,AnswerSquad.com小组的核心成员,并写过许多书,涉及到微软认证,iMacs和开放源码编程等不同的主题。除了这些出色的尝试以外,他还依然在许多平台环境方面保持着一位标准的程序员所惯有的痴迷。关于本指南中的技术问题和评价,请和作者MC联系,邮箱地址为questions@mcslp.com,或者登陆他的网站(http://www.mcslp.co

5、m/contact)。[软件仓库2]第2节.交叉编译交叉编译器的必要性我们不可能总是在同一个平台上进行编写和构建应用程序。比如许多嵌入式环境,由于简化的存储空间通常小于256MB,甚至可能小于64MB,就不太现实。如此小的空间是无法容下一个寻常的C编译器,及相关工具和所需的C库,就更不用说在上面运行了。在这种环境下进行实际开发,显然异常困难。即使假设你能通过键盘和显示器来访问、使用系统,你也无法使用功能完善的编辑器(例如,emacs)或者大型的开发环境。许多嵌入式解决方案中甚至都没有提供访问网络的功能。交叉

6、编译器使你能够在一个平台(主机)上面向另一个系统(目标机)进行实际的开发,编译。目标机器不需要存在:只要编译器能够知道怎么生成目标平台的机器代码就可以了。在其它情况下,交叉编译器也能够很有用。我曾经有一次需要在一个没有安装C编译器的机器上工作,并且很难获得已编译好的二进制程序。但是,我的另一台机器装有C编译器,并且还装有GNU编译器(GCC),C库(newlib)和二进制工具包的源代码。利用这些工具,我能够先构建一个交叉编译器,然后再构建一个本地编译器,这样我就可以直接拷贝过来使用了。当你有一台运行很慢的机

7、器和一台非常快的机器时,如果你想在几分钟内构建好程序,而不是花几个小时或者几天的话,你也可以使用交叉编译器来。我就曾经用这种方法更新过一台机器上的一个软件的新版本。在那台机器上,原本可能会花费2-3天来重新构建所有的组件,而且那台机器还正在一直担当着本已很重要的服务器任务。在进行详细讨论构建交叉编译器之前,让我们进一步看一下编译器是如何工作的,这样就可以更好的理解交叉编译器为什么能够工作,特别是怎么工作的。交叉编译的工作方式编译器的工作方式比较简单。(在本参考手册里,讨论的是gcc,不过基本原理适用于任何编

8、译器。)几个不同的组件在一起工作,最终生成目标CPU所使用的字节码。当能生成汇编后的字节码时,就说明你已成功的交叉编译了。任何一个编译器的主要组件都包括:²       分析器:分析器将源语言程序代码转换为汇编语言。因为要从一种格式转换为另一种格式(C到汇编),所以分析器需要知道目标机器的汇编语言。²       汇编器:汇编器将汇编语言代码转换为CPU可以执行字节码。²       连接器:连接器将汇编器生成的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。