交叉编译是一种在一个平台上生成可在另一个平台上运行的可执行文件的技术。它通常用于嵌入式开发或跨平台开发场景,例如在 x86 架构的主机上编译适用于 ARM 架构的程序

交叉编译涉及三个关键参数:build、host 和 target。

build:表示构建交叉编译工具链的平台。 host:表示运行交叉编译器的平台。 target:表示生成的可执行文件将运行的平台。 例如,在 x86主机上构建一个能在 ARM 平台上运行的程序时,build 是 x86,host 是 x86,target 是 ARM

编译出运行在arm系统上的可执行文件 需要用到Arm GNU Toolchain

我们的实验环境:

宿主机:Ubuntu 20.04 x86_64 目标系统:aarch64 linux(aarch64-none-linux-gnu)

下载https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz