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