天天看點

google proto buffer安裝和簡單示例

1、安裝

解壓下載下傳的包,并且閱讀README.txt,根據裡面的指引進行安裝。

$ ./configure

$ make

$ make check

$ make install

沒有意外的話,前面三步應該都能順利完成,第四步的時候,需要root權限。我采用的預設的路徑,是以,僅僅用root權限,還是安裝不了,要自己先在/usr/local下建立一個lib的目錄,然後執行make install,這樣,應該就能順利安裝google proto buffer了。

安裝完後,先寫一個測試程式來測試下安裝,先來看看proto檔案:

package hello;

message Hello

{

required int32 id = 1; //user id

required string name = 2; //user name

optional string email = 3; //user email

}

接着,要用protoc生成一個對應的類,我把它生成在./out目錄裡:

protoc hello.proto --cpp_out=./out

接下來,在out目錄下,會生成兩個檔案:

$> ls

hello.pb.cc hello.pb.h

接下來,編寫測試用的c++代碼:

hello.cc

#include <stdio.h>

#include <string.h>

#include "out/hello.pb.h"

using namespace std;

using namespace hello;

int main()

Hello a;

a.set_id(101);

a.set_name("xg");

string tmp;

bool ret = a.SerializeToString(&tmp);

if (ret)

printf("encode success!\n");

else

printf("encode faild!\n");

Hello b;

ret = b.ParseFromString(tmp);

if (ret)

printf("decode success!\n id= %d \n name = %s\n", b.id(), b.name().c_str());

printf("decode faild!\n");

return 0;

接着,編譯一下這個代碼,由于使用了protobuf的庫,是以編譯的時候,要把這些庫也連結進來:

g++ hello.cc ./out/hello.pb.cc -o hello -I./out -I/usr/local/protobuf/include -L/usr/local/lib -lprotobuf

這樣,就生成了測試程式。

運作一下:

$> ./hello

encode success!

decode success!

id= 101

name = xg

繼續閱讀