关于树莓的交叉编译[备忘]

来源:互联网 发布:美食美客软件 编辑:程序博客网 时间:2024/05/16 23:37

对应官方的Raspbian,下载

raspbian-toolchain-gcc-4.7.2-linux32.tar.gz
保存几个地址:
<pre name="code" class="html">https://s3.amazonaws.com/RTI/Community/ports/toolchains/raspbian-toolchain-gcc-4.7.2-linux32.tar.gz
<pre name="code" class="html"><pre name="code" class="html">https://<span style="font-family: Arial, Helvetica, sans-serif;">github.com/raspberrypi/tools.git</span>
解压到/opt,然后修改环境变量

sudo leafpad ~/.bashrc

尾部加一行

export PATH=/opt/raspbian-toolchain-gcc-4.7.2-linux32/bin:$PATH
source一下,可以不重启就使用

arm-linux-gnueabihf-gcc -v
查看是否应用上了交叉链


http://www.airspayce.com/mikem/bcm2835/ 该链接给出的C库只是在树莓上编译安装,并没有说如何在host机上安装,

假如是在宿主机上编译,估计在./configure后加一长串奇奇怪怪的东西,我是看不懂。。




聪明的办法不会,用土方法总可以试试吧微笑

那就按网站上给出的方法,在树莓上编译

tar zxvf bcm2835-1.xx.tar.gzcd bcm2835-1.xx./configuremakesudo make checksudo make install

ok,然后把

/usr/local/include/bcm2835.h/usr/local/lib/libbcm2835.a
分别丢进host机

/opt/raspbian-toolchain-gcc-4.7.2-linux32/lib/gcc/arm-raspbian-linux-gnueabi/4.7.2/include/opt/raspbian-toolchain-gcc-4.7.2-linux32/arm-raspbian-linux-gnueabi/lib

这时候在host机上,试试编译带有bcm2835函数的测试代码ts02.c

#include <bcm2835.h>  #include <stdio.h>int main(){if (!bcm2835_init()) return 1;printf("bcm2835_init_success!\n");return 0;}

<pre name="code" class="html">arm-linux-gnueabihf-gcc -o ts02 ts02.c -l bcm2835

把编译出来ts02丢树莓上

chmod 755 ts02sudo ./ts02

是可以运行的微笑


更白痴的方法就是把bcm2835.c.h放同一目录

在写测试代码时

#include "bcm2835.h"
arm-linux-gnueabihf-gcc -o ts02 ts02.c bcm2835.c
因为libbcm2835.a这个库无非就是

gcc -c bcm2835.car rv libbcm2835.a bcm2835.o
出来的




0 0