我的同学给了我一个nb-iot的小开发板 ,让我在树莓派上移植一个nb-iot的程序。

1.配置交叉编译

  1. 首先给树莓派烧系统。 看看编译器版本是什么:

    pi@raspberrypi:~$ gcc -v
    gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1)
  2. 下载交叉编译器。

    百度一搜,去官方下载gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz

  3. 解压安装

    注意: 这里我mv是为了对这个文件夹改名字

    ➜  Downloads sudo tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz -C /opt
    ➜ Downloads cd /opt/
    ➜ /opt sudo mv gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf gccRaspPI
    ➜ /opt cd gccRaspPI/bin

  4. 设置环境变量

    注意: 我修改zshrc是因为我使用的是zsh,一般情况下使用的是bash

    ➜  bin realpath .
    /opt/gccRaspPI/bin
    ➜ bin sudo vi ~/.zshrc
    最后一行添加export PATH="$PATH:/opt/gccRaspPI/bin"
    ➜  bin source ~/.zshrc           
    ➜ bin arm-linux-gnueabihf-gcc -v
    gcc version 5.5.0 (Linaro GCC 5.5-2017.10)
    设置成功。

2.编译程序

先写个程序:

#include <stdio.h>
int main(int argc, char const *argv[]) {
printf("hello world\n");
return 0;
}

编译:

➜  nb-proj arm-linux-gnueabihf-gcc main.c -o test

传输程序

利用sftp发送文件后:

pi@raspberrypi:~ $ ./test 
hello world
执行成功。