ARM 裸机、 Uboot 移植、 Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,交叉编译器就是:
1、它肯定是一个GCC 编译器。
2、这个GCC 编译器是运行在X86 架构的 PC 上的。
3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的
交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器
1.下载
Linaro Releases
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
2.安装
在 Ubuntu 中创建目录:/usr/local/arm,命令如下:
sudo mkdir /usr/local/imx
创建完成以后将刚刚拷贝的交叉编译器复制到/usr/local/imx 这个目录中,在终端使用命令
“ cd ” 进入到存放有交叉编译器的目录, 比如我前面将交叉编译器拷贝到了目录
“/home/alientek/linux/tool”中,然后使用如下命令将交叉编译器复制到/usr/local/imx 中:
sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/imx/ -f
拷贝交叉编译工具到/usr/local/imx 目录中
拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下:
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
等待解压完成,解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-
gnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。
修改环境变量,使用 VI 打开/etc/profile 文件,命令如下:
sudo vi /etc/profile
打开/etc/profile 以后,在最后面输入如下所示内容:
export PATH=$PATH:/usr/local/imx/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
添加完成以后的/etc/profile 如图 所示:
在使用交叉编译器之前还需要安装一下其它的库,命令如下:
sudo apt-get install lsb-core lib32stdc++6
等待这些库安装完成。
3.交叉编译器验证
首先查看一下交叉编译工具的版本号,输入如下命令:
arm-linux-gnueabihf-gcc -v
如果交叉编译器安装正确的话就会显示版本号
要使用刚刚安装的交叉编译器的时候使用的命令是“arm-linux-gnueabihf-gcc”,“arm-linux-gnueabihf-
gcc”的含义如下:
1、arm 表示这是编译 arm 架构代码的编译器。
2、linux 表示运行在 linux 环境下。
3、gnueabihf 表示嵌入式二进制接口。
4、gcc 表示是 gcc 工具。