一、概述

现在已经完成PC端的虚拟机环境安装、完成了开发板镜像烧写。以测试的hello为例,PC端使用gcc hello.c编译得到的a.out在开发板是无法运行的。想要运行在开发板上,需要通过交叉编译才行。这篇文章就是记录安装交叉编译工具,并交叉编译一个hello.c文件。

二、arm-2009q3安装

  1. 我的安装文件在windows下,所以需要先将arm-2009q3.tar.bz2放到之前设置的共享文件夹下。进入Ubuntu查看文件,拷贝到/usr/local/arm文件夹下:
    在这里插入图片描述
  2. 解压交叉编译工具。
cd /usr/local/arm/
tar -vxf arm-2009q3.tar.bz2

在这里插入图片描述
3. 修改交叉编译工具路径,需要修改环境变量。

cd /root
vim .bashrc

在这里插入图片描述
在文件的最后一行添加如下信息:

export PATH=$PATH:/usr/local/arm/arm-2009q3/bin

在这里插入图片描述
4. 更新环境变量,查看安装结果

source .bashrc
arm

输入“arm”后按 TAB 键,如果在命令行中能够看到 arm 编译器的信息,就表明交叉编译工具安装成功。
在这里插入图片描述

三、编译测试

现在使用交叉编译工具编译我们的hello.c文件。

arm-none-linux-gnueabi-gcc -o hello hello.c

结果与想象不太一样,居然失败了:
在这里插入图片描述
跟前面一样,万能百度,不行再Google一下。最终找到了:解决方案。需要安装下32位库:

sudo apt-get install ia32-libs

显示已被废弃,然后根据提示进行新的安装即可:
在这里插入图片描述
安装完后再次测试,可以看到成功编译。这里也可以看到,交叉编译的文件是不能在Ubuntu上运行的。
在这里插入图片描述

四、开发板运行

既然交叉编译后的结果不能在PC端运行,现在就将其下载到开发板上运行。这里先使用U盘来实现。
在Ubuntu中直接将编译好的hello拷贝到U盘内,U盘插到开发板上:
在这里插入图片描述
然后需要对U盘进行挂载,因为第一次使用,默认没有/mnt/udisk文件夹,需要mkdir一下。之后就能够查看到hello文件:
在这里插入图片描述
运行测试一下:
在这里插入图片描述
测试完成后umount /mnt/udisk卸载U盘即可。
我这里使用的是FAT32默认格式,如果U盘格式为NTFS,会有一点差异。后续有时间再补充一下。

Logo

更多推荐