交叉编译含义:
是指在一个平台上生成另一个平台上的可执行代码
同一个体系结构可以运行不同的操作系统,同样一个操作系统也可以在不同的体系结构上运行
例:常说的x86 Linux平台(指inter x86体系结构及Linux for x86操作系统)
x86 WinNT平台(指inter x86体系结构及Windows NT for x86操作系统)
交叉编译的好处:
在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,
比如常见的ARM平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在
100MHz到500MHz之间。这种情况下,在ARM平台上进行本机编译就不太可能了,这是因
为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强
的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,
我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平
台的可执行程序。
常见的交叉编译例子如下:
-
在Windows PC上,利用ADS(ARM开发环境),使用armcc编译器,则可编译出针对ARM CPU的可执行代码。
-
在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。
-
在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARM CPU的可执行代码。
tips
32位操作系统是针对32位CPU设计的
32位操作系统指的是(系统指令集32位)
32位CPU指的是(CPU字长32位,字长指用来一次性处理事务的长度)
CPU架构指的是指令集架构
CPU架构分为:
X86架构是X86指令集,属于CISC指令集(复杂指令集)
ARM架构是ARM指令集,属于RISC指令集(精简指令集)(主要是复杂指令集和精简指令集的区别,一般来说RISC的效率更高,功耗更好,CISC更全能,但是指令集也在不断的演变,所以也不存在绝对的。)
此外还有MIPS(龙芯)、PowerPC等很多架构