zoukankan      html  css  js  c++  java
  • Utunbu 源码编译 protobuf

    1:安装相关工具包:

    $ sudo apt-get install autoconf automake libtool curl make g++ unzip

    2:下载源码,可以到网站https://github.com/protocolbuffers/protobuf/releases/latest选择自己需要的版本,也可以使用git clone下载

    这里选择到网站自己下载:https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protobuf-csharp-3.14.0.tar.gz

    3:选择安装位置[可选]:

      ./configure --prefix=/home/liu/Desktop/Protobuf/pb

    注意:上述命令可替换为

    ./configure

    则默认安装位置在:/usr/local

    4:编译安装

     make
     make check
     sudo make install
     sudo ldconfig # refresh shared library cache.

    注意:即使"make check"失败,仍然可以继续执行后续步䠫,只是有可能protobuf库的某些特性不能正确的使用!

    安装成功后pb文件内容:

    使用例子:

    1:编写People.proto文件

    package demo;  
      
    message People {  
      required string name = 1;  
      required int32 id = 2;  
      required string email = 3;  
    }

    2:使用上面生成安装成功的编译器(在安装目录bin里面的protoc可执行文件)编译.proto文件

    在这里本人将Prople.proto文件放在了bin目录下,并执行了命令,然后生成相应的.cc和.h文件:

    ./protoc -I=. --cpp_out=. People.proto

     3:使用[在Clion]:

    c++文件:

    #include "pbcch/People.pb.h"
    #include <iostream>
    #include <string>
    using namespace demo;
    using namespace std;
    
    int main() {
        People sendpeople;
        sendpeople.set_email("liudd3610@163.com");
        sendpeople.set_name("FF");
        sendpeople.set_id(18);
        char bt[sendpeople.ByteSizeLong()];
        memset(bt,0,sendpeople.ByteSizeLong());
        sendpeople.SerializePartialToArray(bt,sendpeople.ByteSizeLong());
        cout << "------network------" << endl;
        char recvbt[1024];
        int recvsize = sendpeople.ByteSizeLong();
        memset(recvbt,0,1024);
        strcpy(recvbt,bt);
        People recvpeople;
        recvpeople.ParseFromArray(recvbt,recvsize);
        cout << recvpeople.email() << "  " << recvpeople.name() << "  " << recvpeople.id() << endl;
    
    
        return 0;
    }

    项目结构截图:

    注意:Include,Lib文件夹下的内容均复制于上述的安装目录pb下。

     
  • 相关阅读:
    验证码的编写 asp.net
    甲骨文收购Sun,IT业界进入三国时代
    动态加载css文件导致IE8崩溃的问题
    页面调试中关于Console应该注意的地方
    关于仿网易邮箱5.0的Neter UI框架的开源声明
    仿网易邮箱5.0(二):core.js
    仿网易邮箱5.0(三):panel.js
    仿网易邮箱5.0(一):页面基本样式
    Windows下配置Sass编译环境
    ASP+Access查询时按时间进行查询
  • 原文地址:https://www.cnblogs.com/iuyy/p/14130627.html
Copyright © 2011-2022 走看看