zoukankan      html  css  js  c++  java
  • google proto buffer安装和简单示例

    1、安装

    下载google proto buff

    解压下载的包,并且阅读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! ");

    }

    else

    {

    printf("encode faild! ");

    }

    Hello b;

    ret = b.ParseFromString(tmp);

    if (ret)

    {

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

    }

    else

    {

    printf("decode faild! ");

    }

    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

    原文

    http://hi.baidu.com/hins_pan/item/3be48ad0c6fdb7342a35c766

  • 相关阅读:
    IoC~MVC3+EF+Autofac实现松耦合的系统架构
    IoC~高效的Autofac
    Autofac 依赖注入框架 使用
    C# socket编程实践——支持广播的简单socket服务器
    简单理解Socket
    利用html 5 websocket做个山寨版web聊天室(手写C#服务器)
    c# 实现WebSocket
    oracle中clob字段的使用
    查找程序加载的动态库的路径
    wordpress在window下完美实现301重定向的方法
  • 原文地址:https://www.cnblogs.com/mfryf/p/5263245.html
Copyright © 2011-2022 走看看