一、什么是交叉编译
我们一般开发程序在自己的电脑上开发,运行的时候将程序烧录到板子运行。但我们的开发平台是X86架构,而I.MX6ULL是ARM架构,所以需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器。
二、配置交叉编译环境
1、下载交叉编译工具链
Linaro Releases
上面链接进去后根据自己ubuntu环境下载对应的交叉编译工具链,从上往下第5个是32位系统的,第9个是64位系统的。
2、配置环境
在 Ubuntu 中创建目录:/usr/local/arm并将下载好的文件拷贝到该目录下,随后进行解压(笔者的ubuntu是64位的):
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”的文件夹,这个文件夹里面就是我们的交叉编译工具链。
随后修改环境变量,使用 vim 打开 /etc/profile 文件,在最后面输入如下所示内容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
随后重启电脑就OK了。
3、安装其他库
在使用交叉编译器之前还需要安装一下其它的库:
sudo apt-get install lsb-core lib32stdc++6
三、使用交叉编译
首先需要使能环境变量:
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
输入命令查看版本号,且代表环境设置成功!
arm-linux-gnueabihf-gcc -v
随便找一个 .c文件,和使用gcc一样:
arm-linux-gnueabihf-gcc -o demo1 demo1.c
这个demo1可执行文件就可以在ARM架构中运行了。