在Linux交叉编译出适用于树莓派ARM架构的可执行程序

嵌入式开发爱好者 2019-05-11

一、环境介绍:

Linux:

在Linux交叉编译出适用于树莓派ARM架构的可执行程序

树莓派:

在Linux交叉编译出适用于树莓派ARM架构的可执行程序

二、交叉编译器下载

下载命令:git clone git://github.com/raspberrypi/tools.git

下载解压后是一个tools目录,里面是这样的:

在Linux交叉编译出适用于树莓派ARM架构的可执行程序

我们进入到arm-bcm2708,看到gcc-linaro-arm-linux-gnueabihf-raspbian / gcc-linaro-arm-linux-gnueabihf-raspbian-x64(32位选前面的,64位选后面的)进入目录,把里面的bin目录加入PATH环境变量。

可以看到里面内容如下:

在Linux交叉编译出适用于树莓派ARM架构的可执行程序

三、交叉编译

环境变量加好后,进行交叉编译,和gcc/g++一样使用。

编译:arm-linux-gnueabihf-gcc main.c     

生成:a.out

我们在linux运行一下,发现报错:

在Linux交叉编译出适用于树莓派ARM架构的可执行程序

再用命令看一下具体的参数:readelf -h a.out

在Linux交叉编译出适用于树莓派ARM架构的可执行程序

可以看到,架构变成了ARM,此时可以移植到树莓派运行。

四,移植

方式:teamview、U盘,filezilla都可以。

移植过去需要给a.out加上可写的权限:chmod +x a.out,再运行即可成功!

遇到什么问题欢迎交流,不足之处还请指教,相互学习。

 

 

相关推荐

GoatSucker / 0评论 2019-12-22

技术老炮儿 / 0评论 2011-10-29