美文网首页
nanopb的安装和使用

nanopb的安装和使用

作者: 雾里布谷鸟 | 来源:发表于2018-02-08 11:35 被阅读0次

    nanopbprotobuf协议的纯C实现,没有依赖其他库,只需要几个C文件就可以了.非常适合用来做嵌入式设备的通信协议.

    1. 第一步安装protobuf
      去github上下载一个protobuf的release版本,下载all版本,在本地解压缩之后,通过make install来安装.并安装python语言支持

    bogon:protobuf-3.5-1.1 see$ ./configure
    .....(等待执行完成)
    bogon:protobuf-3.5-1.1 see$ make install
    ....(等待执行完成,protobuf就安装好了)
    bogon:protobuf-3.5-1.1 see$ protoc --version
    libprotoc 3.5.1
    bogon:protobuf-3.5-1.1 see$ cd python/
    bogon:python see$ python setup.py build
    bogon:python see$ python setup.py install
    .....(等待执行完成)

    1. 下载nanopb
      去github上下载一个nanopb的release版本,解压之后,能够在目录下看到下面7文件,这7个文件我们需要添加到c工程里面的

    bogon:nanopb-0.3.9 see$ ls
    pb_common.c pb_common.h pb_encode.c pb_encode.h
    pb_decode.c pb_decode.h pb.h

    1. 编译.proto文件
      先用protoc命令编译.proto文件,生成中间文件,然后再执行nano的python脚本(./generator/nanopb_generator.py),将中间文件生成所需要的c文件

    bogon:lock see$ protoc lock.proto -o lock.pb
    bogon:lock see$ ls
    bogon:lock see$ lock.proto lock.pb
    bogon:lock see$ python ../nanopb-0.3.9/generator/nanopb_generator.py lock.pb
    bogon:lock see$ ls
    lock.pb.c lock.pb.h

    1. 完成
      至此,我们就完成了nanopb的安装和.proto文件的生成,为了方便使用,我把执行python那段命令写成了一个shell脚本,每次生成的时候,顺便把所需要的7个文件也拷贝到同一个文件夹下面,将脚本修改成可执行文件(chmod +x nanopb),放到/usr/local/bin 目录下,以后使用就可以使用命令nanopb来用了

    bogon:lock see$ nanopb lock.pb
    bogon:lock see$ ls
    lock.proto lock.pb ccode
    bogon:lock see$ cd ccode
    bogon:ccode see$ ls
    pb_common.c pb_common.h pb_encode.c pb_encode.h
    pb_decode.c pb_decode.h pb.h lock.pb.c lock.pb.h

    #!/bin/sh
    nanodir="nanopb的根目录"
    nanopy=$nanodir"/generator/nanopb_generator.py"
    file1=$nanodir"/pb_common.c"
    file2=$nanodir"/pb_common.h"
    file3=$nanodir"/pb_decode.c"
    file4=$nanodir"/pb_decode.h"
    file5=$nanodir"/pb_encode.c"
    file6=$nanodir"/pb_encode.h"
    file7=$nanodir"/pb.h"
    srcdir=`pwd`
    mkdir $srcdir"/ccode"
    dir=$srcdir"/ccode"
    for i in "$@"; do
        python $nanopy $i
        mv $srcdir"/"$i".c" $dir
        mv $srcdir"/"$i".h" $dir
    done
    cp $file1 $dir
    cp $file2 $dir
    cp $file3 $dir
    cp $file4 $dir
    cp $file5 $dir
    cp $file6 $dir
    cp $file7 $dir
    

    相关文章

      网友评论

          本文标题:nanopb的安装和使用

          本文链接:https://www.haomeiwen.com/subject/nnozzxtx.html