欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-10-17 09:01:36
一、环境介绍: linux: 树莓派: 二、交叉编译器下载 下载命令:git clone git://github.com/raspberrypi/tools.git 下载解压后是一个tools目录,里面是这样的: 我们进入到arm-bcm2708,看到gcc-linaro-arm-linux-gn ......

一、环境介绍:

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,再运行即可成功!

 

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