为什么嵌入式系统要使用交叉编译
所谓交叉编译是指在A系统上编译B系统的二进制代码。
嵌入式的应用程序,甚至操作系统是运行在特定目标平台上,例如一块arm架构的目标板。而编译程序的时候通常是在普通x86构架下的Linux操作系统的PC上。在PC上编译嵌入式应用程序的过程叫做交叉编译。
‘贰’ ubuntu下进行嵌入式C语言开发时,什么叫交叉编译为什么要交叉编译
交易编译就是将文件编译成目标机可执行的文件。
比如说:你在PC机上写一个helloword,怎么让它到开发板上运行,开发板上的指令跟PC机不到,就需要用到交叉编译工具,编译成开发板上能识别的指令。
‘叁’ 什么是交叉编译,为什么要采用交叉编译
在一个平台架构上,编译另一个平台架构的可执行代码,就是交叉编译。
例如在x86架构的PC上编译arm嵌入式设备的可执行程序。
交叉编译是不得不用,
首先在目标设备的系统还没引导起来的时候,编译目标平台的引导程序,显然只能交叉编译。
还有因为目标设备往往能力太低,没法安装编译器,或者勉强安装了,也慢得像蜗牛。
‘肆’ linux嵌入式系统的开发为什么要用到交叉编译器交叉编译器的作用是什么
linux嵌入式系统的开发的应用资料,交叉编译器等等,这方面的资料,
到“工搜网资料文库”索取吧。那里有详细的资料
‘伍’ 嵌入式交叉开发环境组成是怎样的嵌入式系统开发为什么需要这样的交叉开发环境而通用计算机的开发不需要
所谓交叉编译,就是在一种机器结构下编译的软件将在另一种完全不同的机器上运行。典型的交叉编译的例子就是嵌入式系统工程师在自己的个人电脑上编译后的程序将在ARM,MIPS等等嵌入式工作平台上运行。所以,嵌入式交叉开发环境一般将由个人电脑,PC端嵌入式开发软件(如支持ARM的mdk,ads,rvds等等),支持硬件调试的硬件调试器及其配套的驱动软件(如j-link),当然,最重要的还要有嵌入式硬件系统即通俗所谓的开发板。
嵌入式系统之所以要在通用计算机上开发,我想主要还是资源配置的问题,按嵌入式系统的定义,嵌入式系统的软硬件将是可剪裁的以适用于各种不同的要求。这样的话,由于硬件平台千差万别,开发其编译器将变得不可能,即便开发出来,可能也需要及其繁琐的配置,大大降低了软件的可用性。另外就是使用也不方便,大多数嵌入式系统不会配备像PC机一样适于输入的键盘和较大的屏幕,所以,如果在嵌入式系统上敲代码,将是一件非常恼火的事情。
‘陆’ 什么是交叉编译技术,并简述在嵌入式系统中采用该技术的原因
很简单,交叉编译就是在宿主机上编译能在目标板上运行的程序,之所以用交叉编译,就是因为很多目标机的功能不是很强大,例如没有足够的内存,CPU也不行。所以就要借助宿主机来做好它所需要是东东,然后目标机用
‘柒’ 什么是嵌入式设计中的交叉编译
Compiling a program takes place by running a compiler on the build platform. The compiled program will run on the host platform. Usually these two are the same; if they are different, the process is called cross-compilation.
对一个程序进行编译的过程要通过在一个操作系统平台(编译平台)上运行编译器而完成。被编译的程序也将运行在一个操作系统平台(运行平台)上,这二个平台通常是相同的,如果二者不同,则这个编译过程被称为交叉编译。
Typically the hardware architecture differs, like for example when compiling a program destined for the MIPS architecture on an x86 computer; but cross-compilation is also applicable when only the operating system environment differs, as when compiling a FreeBSD program under Linux; or even just the system library, as when compiling programs with uClibc on a glibc host.
一般来说交叉编译被应用在硬件结构不同的机器上,如在x86的计算机上为MIPS体系的机器编译程序。但交叉编译也适用于硬件结构相同而操作系统不同的情况,比如在Linux操作系统下为FreeBSD编译程序。交叉编译甚至也可以应用于只有系统库不同的情况下,如在使用glibc的机器上用uClibc编译程序。
Cross-compilation is typically more involved and prone to errors than with native compilation. Due to this, cross-compiling is normally only utilized if the target is not yet self-hosting (i.e. able to compile programs on its own), unstable, or the build system is simply much faster. For many embedded systems, cross-compilation is simply the only possible way to build programs, as the target hardware does not have the resources or capabilities.
交叉编译通常比本地编译更容易引发错误。因此,交叉编译一般只用于目标平台不能自洽(比如说,目标平台无法完成程序编译),不稳定或者编译平台速度更快的情况下。对大多数嵌入式系统来说,由于目标平台的执行能力或系统资源有限,交叉编译是唯一可行的编译方式。
‘捌’ 为什么要用交叉编译器
交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。
综上,在嵌入式开发的时候我们就要使用交叉编译器。
‘玖’ 嵌入式软件开发中,交叉编译怎么理解
运行在开发板上的程序是在上位机(电脑)上编写和编译的;即在电脑上生成二进制或十六进制可执行文件,在开发板上运行验证,所以叫交叉编译。
