我们在第三章讲解了如何在Linux下进行C程序开发,我们使用的gcc编译器进行代码的编译,编译完,直接在X86架构下的PC下运行的。我们学习的i.MX6 ULL是arm架构的,所以我们需要使用支持arm的编译器并且该编译器在X86架构下运行,这个编译器我们通常称为交叉编译器。
arm交叉编译器有很多种,我们使用Linaro公司的arm交叉编译器,下载地址:/components/toolchain/binaries/4.9-.01/arm-linux-gnueabihf/,如图 1所示:
图 1
在图1中有多种arm交叉编译器,我们需要根据安装的Ubuntu系统来选择对应的版本下载:如果安装的是Ubuntu 32位的系统我们需要下载gcc-linaro-4.9.4-.01-i686_arm-linux-gnueabihf.tar.xz;如果安装的Ubuntu是64位系统我们需要下载gcc-linaro-4.9.4-.01-x86_64_arm-linux-gnueabihf.tar.xz。这两种版本的交叉编译器我们已经放在了光盘资料的“i.MX6UL终结者光盘资料\01_开发及烧写工具\1、交叉编译器”目录下。
下面我们开始在Ubuntu下搭建arm交叉编译器,由于我们安装的是Ubuntu 64位系统,所以我们选择使用编译器“gcc-linaro-4.9.4-.01-x86_64_arm-linux-gnueabihf.tar.xz”。首先我们需要通过ssh文件传输工具把arm交叉编译器拷贝到Ubuntu系统下。我们在Ubuntu的用户根目录下建立文件夹“tools”,用来保存一些开发用到的工具。然后使用ssh文件传输工具将arm交叉编译器传输到我们刚才在Ubuntu系统下创建的“tools”目录下,如图 2所示:
图 2
交叉编译器传输到Ubuntu的用户根目录的“tools”目录下以后,然后在终端输入“sudo mkdir /usr/local/arm”命令创建“/usr/local/arm”目录,如图 3所示:
图 3
然后拷贝刚才上传的交叉编译器到“/usr/local/arm”目录下,我们在终端输入命令“sudo cp /home/topeet/tools/gcc-linaro-4.9.4-.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/”,运行结果如图 4所示:
图 4
拷贝完成以后,进入到“/usr/local/arm”目录下,在终端输入:
“sudo tar -vxf gcc-linaro-4.9.4-.01-x86_64_arm-linux-gnueabihf.tar.xz”解压arm交叉编译器,如图5所示:
图 5
解压完成以后会生成“gcc-linaro-4.9.4-.01-x86_64_arm-linux-gnueabihf”文件夹,这就是我们需要的交叉编译工具,如图 6所示:
图 6
然后我们在终端输入“sudo vi /etc/profile”命令,在文件的最后输入:
“export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-.01-x86_64_arm-linux-gnueabihf/bin”修改环境变量,如图 7所示:
图 7
然后保存并退出,在终端输入“reboot”命令重新启动Ubuntu系统,使交叉编译环境生效。Ubuntu系统重新起来以后,我们登录到系统,打开终端,输入“arm-linux-gnueabihf-gcc -v”,如果终端有如图4.2.3.8所示的打印信息,说明交叉编译环境搭建成功(如果没有出现8所示的打印信息,需要检查下图 7中的配置填写是否正确)。
图 8
如果觉得《i.MX6ULL终结者搭建交叉编译环境》对你有帮助,请点赞、收藏,并留下你的观点哦!