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 (不然看着不舒服)


     
     
  • 相关阅读:
    Button 样式设置
    WPF 运行报错:在使用 ItemsSource 之前,项集合必须为空。
    c# List 按条件查找、删除
    c# WPF DataGrid设置一列自增一
    C# WPF DataGrid去掉最左侧自动生成一列
    int 转换成定长的 byte数组
    字节数组 byte[] 与 int型数字的相互转换
    [ c# ] int 类型转换为固定长度的字符串
    ListView 绑定 字典
    不能引用的文件,却需要在程序底层使用的文件 的存放位置
  • 原文地址:https://www.cnblogs.com/wuchangbai/p/5007793.html
Copyright © 2011-2022 走看看