欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 操作系统 >> Linux >> Linux开发 >> 教程正文

  没有公告

教程: Linux教程-编程开发-Linux 编程之交叉编译 更多...
教程: Linux教程-编程开发-Linux 编程之交叉编译


OpenARM-CrossCompile-HOWTO

一、版权说明
目的:
本版权声明的目的是希望保证任何人能够真实、有效地享有使用本版权说明所约束的 文档的充分自由;同时,保护文档原作者的权利,不仅使他们得到应得的荣誉,而且 保证原作者不对因其他人的改动而导致的后果负任何责任。

声明:
a、除非另外声明,文档的版权是属于其作者的。本计划所有文档作者保留所有权利。

b、由本计划所生成的自由文档允许每个人自由的使用(包括对本文档进行各种商业性 的或是非商业性的复制和再分发),而无须向 OPENARM 计划或作者支付任何费用,条 件是本版权声明出现在所有的副本中,并且,自由文档版权声明神圣不可侵犯,使用者 不得对声明中的任何条款作任何形式的修改,也不得附加任何其它的条件。

c、允许任何人在遵循本版权声明的前提下对自由文档进行修订后再复制和发布。如果 您修订了自由文档或者发布了修订版本的副本,您就不再是一般意义上的使用者而成为 修订人,这些规定就转化为你的责任。修订人应遵循如下规定:

1。修订版应含有与上一版本具有相同内容的自由文档版权声明,但就其所修改的部分, 修订者拥有其自己的版权。
2。保护原作者以及前期版本的修订者的署名权。修订者应在修订版本中保留原作者以及 前期修订者的姓名及联系方式
3。专门建立并保留一部分内容名为“历史纪录”,针对每一版本的修订,记录该版本 的作者,修订时间,联系方式及发布者等相关信息
4。修订者有告诉读者如何获得上一版本文档的义务,如果是在网站上发布,应做出指 向上一版本文档位置的链接

d、任何人可以引用本文档中的一部分内容,或是将一部分本文档内容与其他文档内容 混合在一起使用,条件是必须在引用的文档部分中加入本版权声明。对上述行为可依 照 c 项规定办理

e、转译。如果需要根据本计划中文档转译为其它种语言,此种行为将被视同为对修订 版本的再次修订,可依照 c 项规定办理。

f、在任何情况下,原作者不承担因使用本文档而导致的对任何当事人所造成的直接的, 间接的,特殊的,附加的或者相伴而生的损坏,包括利益损失的责任,即使原作者在文 档中已经建议了这些损失的可能性时也是如此。





二、什么是交叉编译
什么是交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓 平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结 构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说 的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是 Intel x86体系结构和Windows NT for x86操作系统的简称。

一个经常会被问到的问题就是,“既然我们已经有了主机编译器,那为什么还要交叉编译呢?”其实答案很简 单,没办法啊!有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器 的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没 有建立,连操作系统都没有,根本谈不上运行什么编译器。

另一个经常会被问到的问题就是:“既然可以交叉编译,那还要主机编译干吗?”其实答案也很简单,交叉编 译是不得已而为之!与主机编译相比,交叉编译受的限制更多,虽然在理论上我们可以做任何形式的交叉编 译,但事实上,由于受到专利、版权、技术的限制,并不总是能够进行交叉编译,尤其是在业余条件下!举 例来说,我们至今无法生成惠普公司专有的som格式的可执行文件,因此我们根本无法做目的平台为 HPPA-HPUX的交叉编译。

就我们这个项目而言,需要交叉编译的原因有两个:首先,在项目的起始阶段,目的平台尚未建立,因此需 要做交叉编译,以生成我们所需要的bootloader(启动引导代码)以及操作系统核心;其次,当目的平台能 启动之后,由于目的平台上资源的限制,当我们编译大型程序时,依然可能需要用到交叉编译。



三、交叉编译的基础知识
在做实际工作之前,我想我们应该先掌握一些关于交叉编译的基本知识,其实说白了也就是理解一些我们经 常会碰到的英文单词;)

host 主机平台。
target 目的平台。
perfix 交叉编译器的安装位置。
xxx-xxxx-xxxxx 平台描述。

我们在主机平台上开发程序,并在这个平台上运行交叉编译器,编译我们的程序;而由交叉编译器生 成的程序将在目的平台上运行。这里值得说明得是平台描述,象arm-linux、i386-pc-linux2.4.3这样的字 符串我们经常会看到,其实它是用来描述平台的,它有完整格式、缩减格式和别名之分。完整格式是: CPU-制造厂商-操作系统,如sparc-sun-sunos4.1.4,说明平台所使用的CPU是sparc,制造厂商是sun,上面 运行的操作系统是SunOS,版本是4.1.4。当然,我们都不愿记这么长的东西,因此可以使用短格式,短格式 中有选择地去处了制造厂商、软件版本等信息,因此我们同样可以用sparc-sunos或sparc-sunos-sunos4来 描述这个平台。如果觉得这个还是太麻烦,那就可以使用别名,sun4m就可以很简单地描述这个平台。需要 注意的是,并不是所有的平台都有别名,也不是所有的短格式都可以正确地描述平台。



四、我需要准备些什么
怎么说呢,你先得准备好主机平台,对我们这个项目来说,我们建议采用x86 Linux做主机平台,因为这样需 要的设置工作最少。当然你也可以使用你所喜欢的平台或你所能得到的平台,其中的区别在于你可能必须做 更多的设置工作,当然也有这种可能,就是?br />

[1] [2] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    dos入门教程

    dos入门教程-2

    dos入门教程-1
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网