文章目录
1. 简介
交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。本指南主要内容为在非ARM 架构服务器环境下搭建 ARM 的 GCC 编译环境,编译基于 ARM 架构的应用软件。交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。除了体系结构相关的编译选项以外,其使用方法与 Linux 主机上的 GCC 相同。
搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出 ARM 架构下 Linux 系统所
需的操作系统、应用程序等,然后再上传到 ARM 服务器执行。
2. 环境
- x86编译服务器 Ubuntu 16.04
- ARM64服务器 Ubuntu18.04 (树莓派Pi4)
- 交叉编译器 gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu
3. 交叉编译器安装(x86服务器)
3.1 安装标准的C开发环境
Ubuntu: apt-get install build-essential
Centos: yum groupinstall Development Tools
3.2 在/usr/local 下建立名为ARM-toolchain的文件夹
mkdir /usr/local/ARM-toolchain
3.3 下载交叉编译器
可以通过wget的形式下载
cd /usr/local/ARM-toolchain
wget https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/gcclinaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
也可以从网页上下载后上传到 /usr/local/ARM-toolchain 目录下,交叉编译工具链的地址:gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
下载完成后,解压tar包:
tar –xvf gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
3.4 配置环境变量
修改配置文件,在配置文件的最后一行加入路径配置:
Ubuntu:vim /etc/bash.bashrc
# Add ARM toolschain path
PATH= /usr/local/ARM-toolchain/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linuxgnu/bin:"${PATH}"
Centos: vim /etc/profile
# Add ARM toolschain path
export PATH=$PATH:/usr/local/ARM-toolchain/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linuxgnu/bin
3.5 环境变量生效与测试
# 生效
Ubuntu: source /etc/bash.bashrc
# 测试
aarch64-linux-gnu-gcc -v
执行上面的命令,显示 arm-linux-gnueabi-gcc -v信息和版本
Centos: source /etc/profile
aarch64-linux-gnu-gcc -v
执行上面的命令,显示 arm-linux-gnueabi-gcc -v信息和版本