我们在Ubuntu下编译的c程序是通过gcc编译器编译的在Ubuntu(X86)架构下运行的,在arm架构上是不能运行的。
所以我们要使用交叉编译器在Ubuntu上编译出可以在arm架构上运行的程序!
https://github.com/raspberrypi/tools.git
在这个网址上面下载交叉编译工具
点击Code->download ZIP下载
下载好后再Ubuntu下创建一个tools文件夹用来存放交叉编译工具,将下载好的交叉编译工具传到Ubuntu的tools文件夹里面,
解压文件:
unzip tools-master.zip
解压好后进入解压好的文件夹
cd tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin文件夹下
这些就是我们要用的工具,这里我们用arm-linux-gnueabihf-gcc工具编译c文件到arm平台上面。
pwd 命令查看绝对路径
Ctrl + Shfit+c 复制路径
然后 cd 回车进入工作目录。
sudo vi .bashrc文件
在文件最后添加
export PATH= $PATH:
冒号后面粘贴刚才复制的绝对路径
然后保存退出。
source .bashrc刷新一下文件。
这时我们新打开一个终端,输入 arm-之后按下tap键自动补全,看下交叉编译工具安装完成没有,如果显示
这时交叉编译工具链就安装成功了,我们在后面输入gcc,
就可以编译在arm平台上运行的c程序了。
我们简单的编写一个c程序。
我们用交叉编译工具进行编译
生成armHello可执行文件。
我们用file 命令辨识文件类型
我们可以看到该文件是32 的 运行在ARM架构上的文件。
我们在.Ubuntu上 ./armHello时是不行的。
会提示这么一段话。
这时我们将文件上传到arm架构的板子上就可以运行了。