RaspBerry Pi的交叉编译环境测试

raspbian上自带了gcc工具,如果有程序的源码,可以直接在小Pi上运行,但是限于SD卡和CPU的速度,这种方式用来编译小体积的软件可能比较方便,但是如果在台式机上make也要等待一小时多,在Pi上花费的时间就更是可想而知了,下面回顾一下自己的交叉编译环境的测试:

1.下载编译环境

RaspBerry提供现成的Linux内核和编译系统,在github上可以直接下载,我们只需要编译环境,所以下载tools:

$git clone --depth=1 https://github.com/raspberrypi/tools

我是在公司网下载的,速度在500K以上,总共下载完有近1G的大小

2.编译一个hello world程序

//helo.c

#include <stdio.h>
int main()
{
printf("hello world\n");
}

//Makefile

ARMPATH=/root/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

CC=${ARMPATH}/arm-linux-gnueabihf-gcc

all: hello.c
${CC} -o hello hello.c

我将tools下载到/root/raspi下面,所以路径如上配置

(tools/arm-bcm2708下面有四个目录

arm-bcm2708-linux-gnueabi/

gcc-linaro-arm-linux-gnueabihf-raspbian/

arm-bcm2708hardfp-linux-gnueabi/

gcc-linaro-arm-linux-gnueabihf-raspbian-x64/)

具体每个目录对应的是哪种类型的编译器,目的是什么,只能去Google一下,我也没有看到哪里有说明,可能还是太过笼统了

#make

/root/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc -o hello hello.c

#file hello

hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), BuildID[sha1]=5aec6d75264a104fdb1a13e5f964e8bf7b85c63a, not stripped

将已经编译完的hello程序共享到Pi上,运行

pi@raspberrypi ~/download $ ./hello
hello world

说明我们的编译环境是没有问题的,以后有需要在Pi上测试程序,都可以在Linux上预先编译了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据