交叉编译:

编译:在一个平台上生成该平台可执行代码。
交叉编译:在一个平台生成另一个平台上可执行的代码。(在windows中编写C51代码,并编译成可执行代码如***.hex)

交叉编译什么情况使用:
1.由于平台不允许或者不能够安装所需要的编译器。
2.有时因为目的平台没有建立,没有操作系统,所以需要交叉编译。操作系统也是代码,需要编译。(平台运行需要bootloader和系统核心)。

宿主机:编译和编译程序的平台,一般是基于X86的PC机,通常称为主机。
目标机:用户开发的系统,通常为非X86主机,宿主机编译得到的可执行代码在目标机上运行。

交叉编译需要使用的工具:交叉编译器。、交叉编译工具链。

交叉编译工具链的安装:
unzip解压下载下来的tool-master压缩包。

配置环境变量

配置的位置

python arm 交叉 编译工具 arm交叉编译命令_交叉编译

配置成临时有效:

echo $PATH是显示环境变量路径

python arm 交叉 编译工具 arm交叉编译命令_工具链_02

配置路径:

取PATH的games:加上pwd显示的当前目录

python arm 交叉 编译工具 arm交叉编译命令_工具链_03

该交叉编译工具链只在当前窗口有效,该窗口一旦关闭,交叉编译工具链就无效。配置成永久有效

修改工作目录下的.bashrc隐藏文件,配置命令终端。

在工作目录下打开.bashrc文件在最后加入上面的export

python arm 交叉 编译工具 arm交叉编译命令_交叉编译_04

在工作目录下输入source .bashrc使文件生效。(source是立即生效)

python arm 交叉 编译工具 arm交叉编译命令_交叉编译_05

使用交叉编译工具链编译文件并查看文件属性使用file加文件名

从Ubuntu复制复制文件到树莓派:

scp 文件 pi@IP地址:/存放目录。

python arm 交叉 编译工具 arm交叉编译命令_可执行_06

使用交叉编译工具将socket的ftp项目中的客户端编译成树莓派可执行的代码,让服务端在Ubuntu内运行,客户端在树莓派内运行,实现异端通信。

可以使用arm-linux-gnueabihf-gcc -v查询交叉编译工具链版本。