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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章