这个的话不是一两句话可以说清楚的,你最好看下这本书。
《构建嵌入式Linux系统》这本书主要讲的就是这方面的问题在嵌入式Linux开发环境构建中的交叉编译是什么?所谓交叉编译是指在A系统上编译B系统的二进制代码。
嵌入式的应用程序,甚至操作系统是运行在特定目标平台上,例如一块arm架构的目标板。而编译程序的时候通常是在普通x86构架下的Linux操作系统的PC上。在PC上编译嵌入式应用程序的过程叫做交叉编译。
嵌入式系统开发为什么要采用交叉编译的方式?由于宿主机和目标机的体系结构不同,在宿主机X86平台上可以运行的程序在目标机ARM平台上无法运行,因此嵌入式软件开发采用交叉编译方式在一个平台上生成可以在另一个平台上执行的代码。编译的最主要的工作就是将程序转化成运行该程序的CPU所能识别的机器代码。 进行交叉编译的主机称为宿主机,也就是普通的通用计算机,宿主机系统资源丰富,使用方便地集成开发环境和调试工具等。程序实际运行的环境称为目标机,也就是嵌入式系统环境。