摘要
相关旧帖:
【整理】关于Toolchain,cross toolchain,cross compiler
解释什么是交叉编译之前,先要明白一个概念:本地编译
我们之前常见的软件开发,都是属于本地编译:
在当前的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等