一、环境介绍:

linux:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

关于在linux交叉编译出适用于树莓派ARM架构的可执行程序 随笔 第1张

树莓派:

关于在linux交叉编译出适用于树莓派ARM架构的可执行程序 随笔 第2张

二、交叉编译器下载

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

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

关于在linux交叉编译出适用于树莓派ARM架构的可执行程序 随笔 第3张

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

可以看到里面内容如下:

关于在linux交叉编译出适用于树莓派ARM架构的可执行程序 随笔 第4张

三、交叉编译

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

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

生成:a.out

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

关于在linux交叉编译出适用于树莓派ARM架构的可执行程序 随笔 第5张

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

关于在linux交叉编译出适用于树莓派ARM架构的可执行程序 随笔 第6张

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

四,移植

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

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

 

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

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄