交叉编译环境的搭建简介(精)_第1页
交叉编译环境的搭建简介(精)_第2页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、交叉编译环境的搭建简介在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture、操作系统(Operating System 同一个体系 结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运 行。举例来说,我们常说的 x86 Linux 平台实际上是 Intel x86 体系结构和 Linux for x86 操作系统的统称;而 x86 WinNT 平台实际上是 In

2、tel x86 体系结构和 Win dows NT for x86 操作系统的简称。有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需 要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要 编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么 编译器。交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用 的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如 C 代 码编译(compile 成计算机可以识别和执行的二进制代码。比如,我们在 Windows 平 台上,可使用 Visual C+开发环

3、境,编写程序并编译成可执行程序。这种方式下,我们 使用PC 平台上的 Windows 工具开发针对 Windows 本身的可执行程序,这种编译过 程称为native compilation,中文可理解为本机编译。然而,在进行嵌入式系统的开发 时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的ARM平台,其一般的静态存储空间大概是16到32MB,而 CPU的主频大概在 100MHz 到 500MHz 之间。这种情况下,在 ARM 平台上进行本 机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain 需要很大的 存储空间,并需要很强的 CPU 运

4、算能力。为了解决这个问题,交叉编译工具就应运而 生了。通过交叉编译工具,我们就可以在 CPU 能力很强、存储控件足够的主机平台 上(比如 PC 上编译出针对其他平台的可执行程序。1.交叉编译的基础知识在做实际工作之前,我想我们应该先掌握一些关于交叉编译的基本知识,其实说 白了也就是理解一些我们经常会碰到的英文单词;host 主机平台。target 目的平台。perfix 交叉编译器的安装位置。xxx-xxxx-xxxxx 平台描述。我们在主机平台上开发程序,并在这个平台上运行交叉编译器,编译我们的程序; 而由交叉编译器生成的程序将在目的平台上运行。这里值得说明得是平台描述,象arm-linux

5、、 i386-pc-linux2.4.3 这样的字符串我们经常会看到,其实它是用来描述平台 的,它有完整格式、缩减格式和别名之分。完整格式是:CPU-制造厂商-操作系统,如sparc-sun-sunos4.1.4 说明平台所使用的 CPU 是 sparc 制造厂商是sun 上面运行的操作系统是 SunOS 版本是 4.1.4。当然,我们都不愿记这么长的 东西,因此可以使用短格式,短格式中有选择地去处了制造厂商、软件版本等信息,因 此我们同样可以用 sparc-sunos 或 sparc-sunos-sunos 睐描述这个平台。如果觉得这 个还是太麻烦,那就可以使用别名,sun4m 就可以很简单

6、地描述这个平台。需要注意 的是,并不是所有的平台都有别名,也不是所有的短格式都可以正确地描述平台。2.我需要准备些什么先得准备好主机平台,建议采用 x86 Linux 做主机平台,因为这样需要的设置工 作最少。当然你也可以使用你所喜欢的平台或你所能得到的平台,其中的区别在于 你可能必须做更多的设置工作,当然也有这种可能,就是你所选择的主机平台根本不 能生成适用于目标平台的正确的交叉编译器。对于交叉编译器,可以自己生成,也可以从网上下载。区别在于从网上下载非常 简单方便,但也许你找不到适合你所选择的平台的。而自己生成交叉编译器,有时会遇到很多挫折,但这的确是个有趣的值得怀念的经历。如果你想自己生

7、成交叉编译器,那你必须先准备下面这些东西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 的源代码。如果你所使用的主机平台不是运行的 lin ux,那你还必须注意以下这些问题1、GNU bash 必须是默认 shell,所以你也许得把/bin/sh 改成 bash。2、 你要确认已经安装了 GNU biso n,因为这些软经同样使用了 bison 扩展。3、 GNU gmake 最好是系统默

8、认得 make,因为这些软件都使用了 gmake 扩展,如果不是,在需要 make 时,记得使用 gmake。4、 如果你想生成交叉 glibc,则 GNU gsed 必须是默认 sed 因为 glibc 会用到 gsed的扩展。5、 如果你想生成交叉 glibc,那还必须准备 glibc-linuxthreads-2.2.2 的源代码。&确认正确的路径搜索顺序,最好让 GNU 软件首先被执行。3怎样生成交叉编译器要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(crosscompilation tool chai n,然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下:1、在 Windows PC 上,利用 ADS(ARM 开发环境,使用 armcc 编译器,则可编译出针对 ARM CPU 的可执行代码。2、在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论