阅 读 文 章

Linux 编程之交叉编译

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(不详) | 时间:2007-07-07 | 浏览:人次 ]

  就我们这个项目而言,需要交叉编译的原因有两个:首先,在项目的起始阶段,目的平台尚未建立,因此需要做交叉编译,以生成我们所需要的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做主机平台,因为这样需要的设置工作最少。当然你也可以使用你所喜欢的平台或你所能得到的平台,其中的区别在于你可能必须做更多的设置工作,当然也有这种可能,就是你所选择的主机平台根本不能生成适用于目标平台的正确的交叉 编译器。

  对于交叉编译器,可以自己生成,也可以从网上下载。区别在于从网上下载非常简单方便,但也许你找不到 适合你所选择的平台的。而自己生成交叉编译器,有时会遇到很多挫折,但这的确是个有趣的值得怀念的经 历。

  如果你想自己生成交叉编译器,那你必须先准备下面这些东西

  1、磁盘空间。至少要500M左右的空间,如果想一气呵成的话,那就要900M-1G的空间。

  2、各种源代码。你至少要准备binutils-2.11.2、gcc-2.95.3、linux-2.4.6、newlib-1.8.2或glibc-2.2.2 的源代码。

  如果你所使用的主机平台不是运行的linux,那你还必须注意以下这些问题

  1、GNU bash必须是默认shell,所以你也许得把/bin/sh改成bash。

  2、你要确认已经安装了GNU bison,因为这些软经同样使用了bison扩展。

  3、GNU gmake最好是系统默认得make,因为这些软件都使用了gmake扩展,如果不是,在需要make时,记得

  使用gmake。

  4、如果你想生成交叉glibc,则GNU gsed必须是默认sed,因为glibc会用到gsed的扩展。

  5、如果你想生成交叉glibc,那还必须准备glibc-linuxthreads-2.2.2的源代码。

  6、确认正确的路径搜索顺序,最好让GNU软件首先被执行。

  五、怎样生成交叉编译器

  我们建议使用现成的脚本来生成交叉编译器,因为在配置交叉编译器时,会经常使用一些难以理解的开关项。

  待续。。。。。。

  六、参考文献

  www.objsw.com/CrossGCC/ 这是一个老牌的交叉编译FAQ,可惜最近已经很少更新了。

  crossgcc.billgatliff.com/

论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 编译 交叉 编程 平台 我们 修订 使用 文档 生成 可以

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.