ubuntu编译安装protobuf

测试环境:Ubuntu 16.04 LTS

  1. protobuf的release页面
    下载源码:https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz
  2. 安装编译依赖

    sudo apt-get install autoconf automake libtool curl make g++ unzip
  3. 解压、编译、安装(测试时是非root帐号,所以install时需要sudo)

    tar -xvf protobuf-all-3.6.1.tar.gz
    cd protobuf-3.6.1
    ./configure --prefix=/usr/local/protobuf
    make
    make check
    sudo make install
  4. 配置1:环境变量(参考链接

    vim /etc/profile
    添加两行:
    export PATH=$PATH:/usr/local/protobuf/bin/
    export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
    
    source /etc/profile
    
    ~/.profile中也添加上面两行
  5. 配置2:动态链接库

    cd /etc/ld.so.conf.d/
    sudo vi protobuf.conf
    添加一行:
    /usr/local/protobuf/lib
    
    ldconfig
  6. 确认版本

    $ protoc --version
    libprotoc 3.6.1
  7. 验证(转自
    vi message.proto

    syntax = "proto3";
    
    message Person {
        int32 id = 1;
        string name = 2;
    
        repeated Phone phone = 4;
    
        enum PhoneType {
            MOBILE = 0;
            HOME = 1;
            WORK = 2;
        }
    
        message Phone {
           string number = 1;
           PhoneType type = 2;
        }
    }

    protoc --java_out=./java ./proto/message.proto

  8. java代码验证
    387938-20180909232037022-285916546.png
    maven引入:

     <dependency>
         <groupId>com.google.protobuf</groupId>
         <artifactId>protobuf-java-util</artifactId>
         <version>3.6.1</version>
     </dependency>

    gradle引入:

    compile 'com.google.protobuf:protobuf-java:3.6.1'

    java代码

     import com.google.protobuf.InvalidProtocolBufferException;
    
     import java.util.Arrays;
     import java.util.List;
    
     public class App {
    
         public static void main(String[] args) {
             Message.Person.Builder personBuilder = Message.Person.newBuilder();
             personBuilder.setId(12345678);
             personBuilder.setName("Admin");
             personBuilder.addPhone(Message.Person.Phone.newBuilder().setNumber("10010").setType(Message.Person.PhoneType.MOBILE));
             personBuilder.addPhone(Message.Person.Phone.newBuilder().setNumber("10086").setType(Message.Person.PhoneType.HOME));
             personBuilder.addPhone(Message.Person.Phone.newBuilder().setNumber("10000").setType(Message.Person.PhoneType.WORK));
    
             Message.Person person = personBuilder.build();
             byte[] buff = person.toByteArray();
    
             try {
                 Message.Person personOut = Message.Person.parseFrom(buff);
                 System.out.printf("Id:%d, Name:%s\n", personOut.getId(), personOut.getName());
    
                 List<Message.Person.Phone> phoneList = personOut.getPhoneList();
    
                 for (Message.Person.Phone phone : phoneList) {
                     System.out.printf("PhoneNumber:%s (%s)\n", phone.getNumber(), phone.getType());
                 }
    
             } catch (InvalidProtocolBufferException e) {
                 e.printStackTrace();
             }
    
             System.out.println(Arrays.toString(buff));
    
         }
    
     }

其他

  1. Google Protocol Buffer 的使用和原理
  2. 序列化性能比较

转载于:https://www.cnblogs.com/liqipeng/p/9615807.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴能够回答您的问题,Ubuntu安装Protobuf的步骤如下:1. 确保安装了Git,GCC,和Make;2. 使用Git下载Protobuf的源代码;3. 进入Protobuf的源代码目录,使用./configure配置Protobuf;4. 使用make编译Protobuf;5. 使用make install安装Protobuf。 ### 回答2: 在Ubuntu安装protobuf可以按照以下步骤进行操作: 1. 打开终端,使用以下命令更新软件包列表:sudo apt update 2. 确保GCC编译器已安装,可以使用以下命令检查是否已安装:gcc --version 3. 如果GCC未安装,可以使用以下命令进行安装:sudo apt-get install build-essential 4. 使用以下命令安装protobuf软件包:sudo apt-get install protobuf-compiler 5. 安装完成后,可以使用以下命令检查所安装protobuf版本:protoc --version 6. 如果还需要安装protobuf的Python插件,在终端中运行以下命令:sudo apt-get install python-protobuf 7. 安装完成后,可以使用pip命令安装protobuf库的Python包:pip install protobuf 8. 如果需要使用其他语言的protobuf库,可以在相应语言的包管理器中安装protobuf相关包。 以上步骤完成后,就可以在Ubuntu系统中使用protobuf库进行编译和使用了。安装protobuf可以让你更加方便地进行序列化和反序列化操作,加快数据传输速度。 ### 回答3: 在Ubuntu安装protobuf可以通过以下步骤进行: 1. 打开终端,在命令行中输入以下命令来更新系统软件包列表: sudo apt-get update 2. 安装protobuf编译所需的依赖项,输入以下命令: sudo apt-get install autoconf automake libtool curl make g++ unzip 3. 下载protobuf源代码文件,可以从Github上的protobuf发布页面(https://github.com/protocolbuffers/protobuf/releases)选择合适的版本,然后用wget命令下载源代码文件,例如: wget https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-all-3.17.3.tar.gz 4. 解压下载的源代码文件,使用以下命令: tar -zxvf protobuf-all-3.17.3.tar.gz 5. 进入解压后的目录,输入以下命令: cd protobuf-3.17.3 6. 首先运行配置脚本,输入以下命令: ./configure 7. 编译protobuf代码,输入以下命令: make 8. 安装protobuf,输入以下命令: sudo make install 9. 安装完成后,输入以下命令来确认protobuf的版本: protoc --version 以上步骤完成后,你就成功在Ubuntu安装protobuf。你可以在终端中使用protoc命令来编译protobuf文件。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值