protobuf 安装与使用

一. 安装 protoc

1.ubuntu 安装

方法一:

使用 sudo apt-get install protoc 安装

方法二:

  1. 去https://developers.google.com/protocol-buffers/docs/downloads下载*.tar.tz压缩包,解压,
  2. 命令行进入解压后目录,依次执行如下
    ./configure
    make
  3. 创建文件 /etc/ld.so.conf.d/libprotobuf.conf 写入内容:/usr/local/lib
    输入命令 sudo ldconfig

    注:protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib 不在Ubuntu体系默认的 LD_LIBRARY_PATH 里,后面install找不到该lib

  4. 然后sudo make install

  5. 安装后,输入protoc --version 验证是否安装成功

2.windows安装

  1. 去官方下载windows版本解压
  2. 把里面的protoc.exe所在目录,添加到环境变量

二.protobuf在java中的使用

  1. 新建test.proto,内容如下
    package tutorial;//相当于命名空间

    option java_package = "com.example.tutorial";
//java_package 就是生成我们.java文件的包名

    option java_outer_classname = "AddressBookProtos";
//java_outer_classname也就是我们把.proto编译成.java后的名字(也就是AddressBookProtos.java)

    message Person

    {//类一
//消息结构
        required string name = 1;
//这里的required 的修饰符表示候name必须赋值(没有默认值)
        required int32 id = 2;
        optional string email = 3;
//同理optional 也就是可不赋值当然 如果你在后面加了[dafault = xx],例如
//optional string email = 3;[dafault = 0]默认值是0 
//required和optional可以有默认值

        enum PhoneType {//枚举定义
            MOBILE=0;
            HOME=1;
            WORK=2;
        }

        message PhoneNumber {//结构体、类,统一定义为 message实际上是嵌套类

        required string number = 1;
        optional PhoneType type = 2[ default=HOME];
    }

        repeated PhoneNumber phone = 4;
    }

    message AddressBook

    {//类二
        repeated Person person = 1;
    }
  1. 执行 protoc -I=./--java_out=./ test.proto
    在当前目录按照包名生成对应的java文件
  2. 将java文件添加到工程中,并加入如下引用:
    compile 'com.google.protobuf:protobuf-java:2.6.1'
    此处可以参考 https://developers.google.com/protocol-buffers/docs/javatutorial

本文参考:
https://github.com/google/protobuf
https://developers.google.com/protocol-buffers

你可能感兴趣的:(protobuf,protoc)