什么是交叉编译

Posted Avatarx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是交叉编译相关的知识,希望对你有一定的参考价值。

 

解释什么是交叉编译之前,先要明白一个概念:本地编译

我们之前常见的软件开发,都是属于本地编译:

在当前的PC下,x86的CPU下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在当前的环境,即x86的CPU下,当前电脑中,运行。

此时的编译,可以叫做,本地编译,即在当前目标平台下,编译出来的程序,也只是放到当前平台下,就可以运行的。

 

交叉编译,是一个和,本地编译,相对应的概念。

而所谓的,交叉编译,就是:

在一种平台上编译,编译出来的程序,是放到别的平台上运行

即编译的环境,和运行的环境,不一样,属于交叉的,此所谓cross

交叉编译,这个概念,主要和嵌入式开发有关。

例 1.1. 在x86平台上编译,在ARM平台上运行

一种最常见的例子就是:

在进行嵌入式开发时

手上有个嵌入式开发板,CPU是arm的

然后在x86的平台下开发,比如Ubuntu的Linux,或者是Win7

然后就需要:

在x86的平台上,(用交叉编译器)去编译你写好的程序代码

编译生成的(可执行的)程序,是放到目标开发板,arm的CPU上运行的

此所谓:在x86平台上编译,在ARM平台上运行

 

 

交叉编译,英文常写作cross compile,也有其他写法:crosscompile, cross compiling等

以上是关于什么是交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

[转] 什么是交叉编译(很好的入门文章)

交叉编译,为什么需要交叉编译

交叉编译和交叉工具链

如何交叉编译 动态库

什么是交叉编译

LINUX交叉编译工具链和GCC是啥关系啊