zoukankan      html  css  js  c++  java
  • 树莓派学习笔记——交叉编译

    PC机环境 ubuntu 14.04 64位

    设置交叉工具链

       1. sudo apt-get install build-essential git
     
       2.clone交叉工具链
        在home路径下建立一个文件夹取名为rpi
        mkdir rpi
        进入该目录并执行clone操作
        cd rpi 

        git clone git://github.com/raspberrypi/tools.git

        cd ~/rpi/tools/arm-bcm2708/
     
        克隆完成之后可以通过pull更新tools
        cd ~/rpi/tools
        git pull origin

        该目录中存在4个文件夹,本例使用gcc-linaro-arm-linux-gnueabihf-raspbian 或 gcc-linaro-arm-linux-gnueabihf-raspbian-x64。前者对应32位系统后者对应64位系统。
        arm-bcm2708hardfp-linux-gnueabi  
        gcc-linaro-arm-linux-gnueabihf-raspbian
        arm-bcm2708-linux-gnueabi        
        gcc-linaro-arm-linux-gnueabihf-raspbian-x64
    3.加入环境环境变量
        在/.bashrc文件中加入gcc交叉工具链目录。
        sudo gedit ~/.bashrc
        【32位系统】
        export PATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
        【64位系统】
        export PATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
     
        source .bashrc
     
    4.简单测试
        为了测试交叉工具链是否安装成功,可在控制台中输入
        arm-linux-gnueabihf-gcc -v
       是不是出来好多东西,那就对了.

    2.简单的例子

     文件名为hello-world.c,该例子仅测试交叉编译是否成功并简单测试了浮点数功能。
      
    1. #include <stdio.h>  
    2. int main(void)  
    3. {  
    4.     float pi = 3.14;      
    5.     printf("Hello World ");  
    6.     printf("%.2f ",2*pi);  
     
       【交叉编译——简单指令】
        cd进入hello-world.c所在目录,输入以下指令以生成可执行文件。请注意该可执行文件不能在PC机上运行。
        arm-linux-gnueabihf-gcc hello-world.c -o hello-world
        最终可在hello-world.c的同目录中生成hello-world可执行文件。

        【交叉编译——makefile】
        当然也可在该目录下建立makefile文件,简单的makefile文件如下

      CC=arm-linux-gnueabihf-gcc  

      hello-world:hello-world.o  

      clean:  

       rm -rf hello-world.o hello-world  

        在makefile文件中使用了至少两条隐含规则,CC为默认工具链;*.o文件由同名的*.c文件生成。
        那么在控制台中输入make即可生成可执行文件。

        给树莓派传我编译好的可执行文件:

      scp -r ~/catkin_ws/src/beginner_tutorials/src/hello-world ubuntu@192.168.1.6:/home/ubuntu

       
       【SSH登陆执行】
        登陆之后进入可执行文件所在目录,修改该文件的执行权限。
        sudo chmod 755 hello-world
        ./hello-world
      是不是在树莓派的终端上出现了:

    Hello World
    6.28

    那就ok了

    测试完了删除:rm -rf  hello-world (不然看着不舒服)


     
     
  • 相关阅读:
    POJ 3468 区间更新,区间求和(经典)
    HDU 1698 区间更新
    POJ 2828 单点更新(好题)
    HDU 2795 单点更新,区间优先查找(想法)
    HDU 1394 树状数组求逆序对
    HDU 1754 单点更新,求区间最大值
    Servlet 3.0 对异步处理的支持
    Servet3.0于Servlet2.5比较
    你的灯还亮着吗读书笔记3
    你的灯还亮着吗读书笔记2
  • 原文地址:https://www.cnblogs.com/wuchangbai/p/5007793.html
Copyright © 2011-2022 走看看