对于交叉编译的理解
2007-09-05 16:59
183 查看
什么是交叉编译
什么是交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓
平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结
构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说
的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是
Intel x86体系结构和Windows NT for x86操作系统的简称。
一个经常会被问到的问题就是,“既然我们已经有了主机编译器,那为什么还要交叉编译呢?”其实答案很简
单,没办法啊!有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器
的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没
有建立,连操作系统都没有,根本谈不上运行什么编译器。
另一个经常会被问到的问题就是:“既然可以交叉编译,那还要主机编译干吗?”其实答案也很简单,交叉编
译是不得已而为之!与主机编译相比,交叉编译受的限制更多,虽然在理论上我们可以做任何形式的交叉编
译,但事实上,由于受到专利、版权、技术的限制,并不总是能够进行交叉编译,尤其是在业余条件下!举
例来说,我们至今无法生成惠普公司专有的som格式的可执行文件,因此我们根本无法做目的平台为
HPPA-HPUX的交叉编译。
我们在主机平台上开发程序,并在这个平台上运行交叉编译器,编译我们的程序;而由交叉编译器生
成的程序将在目的平台上运行。
什么是交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓
平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结
构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说
的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是
Intel x86体系结构和Windows NT for x86操作系统的简称。
一个经常会被问到的问题就是,“既然我们已经有了主机编译器,那为什么还要交叉编译呢?”其实答案很简
单,没办法啊!有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器
的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没
有建立,连操作系统都没有,根本谈不上运行什么编译器。
另一个经常会被问到的问题就是:“既然可以交叉编译,那还要主机编译干吗?”其实答案也很简单,交叉编
译是不得已而为之!与主机编译相比,交叉编译受的限制更多,虽然在理论上我们可以做任何形式的交叉编
译,但事实上,由于受到专利、版权、技术的限制,并不总是能够进行交叉编译,尤其是在业余条件下!举
例来说,我们至今无法生成惠普公司专有的som格式的可执行文件,因此我们根本无法做目的平台为
HPPA-HPUX的交叉编译。
我们在主机平台上开发程序,并在这个平台上运行交叉编译器,编译我们的程序;而由交叉编译器生
成的程序将在目的平台上运行。
相关文章推荐
- 嵌入式-交叉编译的个人理解
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
- 对于linux-c编译调试信息的部分理解.
- 对于编译原理的理解
- windows下使用Cmake和VC 2013安装mongodb C driver Windows下安装mongodb的C语言程序驱动必须借助交叉编译软件CMake,但是官网上的文档对于一些
- 交叉编译基础 理解 host build target
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
- 什么是交叉编译?个人对交叉编译的理解
- 深入理解软件包的配置、编译与安装
- 对于session和cookie的理解
- 问题:交叉编译
- Ubuntu9.10下基于eclipse搭建arm-linux交叉编译环境
- openwrt交叉编译
- 对于闭包的一些理解
- 和菜鸟一起学OK6410之交叉编译hello world .
- ubuntu 下交叉编译cgic205
- beego利用liteide进行交叉编译
- 对于ssh整合的理解和步骤详情
- oprofle在android中的交叉编译及使用3