1、交叉编译是什么,为什么要交叉编译
交叉编译是什么?
交叉编译,是在一个平台上生成另一个平台上的可执行代码。(在一个平台上编译,在另外一个平台上运行;例如c51,我们在windows上面编写c51代码,并编译成可执行代码,如xx.hex,是在c51上进行运行,不是在windows上面运行)
我们需要在Ubuntu上面编写树莓派代码,并编译成可执行代码,如a.out,是在树莓派上面运行,不是在Ubuntu上面运行。
代码的编辑:用vi来写代码
代码的编译:gcc进行编译(正常的编译,在一个平台上生成在该平台上可执行的代码)
代码的执行:./a.out执行代码
为什么要交叉编译?
平台上不允许或不能够安装我们所需要的编译器,比如c51
1、目标平台上资源贫乏,无法运行我们所需要编译器
2、树莓派是不是就不需要交叉编译?
——错,也要。树莓派有时因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器,操作系统也是代码,也要编译。
平台运行至少需要两样东西:bootlosder(启动引导代码)以及操作系统核心。
宿主机(host):编辑和编译程序的平台,一般是基于x86的pc机,通常也被称为主机。
目标机(target):用户开发的系统,通常都是非x86平台。host编译得到的可执行代码在target上运行。
交叉编译用到的工具:
交叉编译器
2、交叉编译工具链的安装
下载网址:https://github.com/raspberrypi/
下载tools→tools