protobuf在window上的使用

1、到https://github.com/google/protobuf/releases下载protoc-3.5.1-win32.zip
你们也可以选择其他 解压该文件,文件下有protoc.exe
2、需要maven环境,这里不做演示
添加依赖(依赖的版本要和上面的protoc的版本保持一致)
http://mvnrepository.com/artifact/com.google.protobuf/protobuf-java/3.5.1

<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>3.5.1</version>
</dependency>

3、建立一个测试的msg.proto文件 这个文件我放在src/main/resources
同时把protoc.exe也放在这个目录下

syntax = "proto2";
package protobuf;

option java_package = "com.binglo.AllNetty.protobuf";
option java_outer_classname = "PersonProbuf"; 

 message  RequestMsg {
    required string cmd = 1;
    required bytes requestParam = 2;
}

第一行是指定版本号,如果没有,编译器会报如下错误:
[libprotobuf WARNING google/protobuf/compiler/parser.cc:547] No syntax specified for the proto file. Please use ‘syntax = “proto2”;’ or ‘syntax = “proto3”;’ to specify a syntax version. (Defaulted to proto2 syntax.
第二行是包名

第三行是生成java文件后的包名

第四行是生成的类名

message的定义,他是用来存放数据域的,数据域有自己的类型。
一个域由以下部分组成:修饰词 类型 域名 = 标记值

name,是string类型的,前面还有 required修饰符,表示这个域必须有,后面还有 = 1,这个符号,这是用来在二进制编码里面唯一确认当前的域的,如果你某些域用的很频繁,应该首先分配1-15,这也是作为优化的一种方式。

emailoptional,也就是可选的,这个域可有可无,如果没有设置的话,系统会自动填充一个合理地值。

通常情况下,一个人不可能只拥有一个号码,所以phone应该是一个集合,这个集合可以是变化的,可为空,你可以想象为一个动态变化的数组,所以它的修饰词是repeated

4、在命令模式下进入到protoc.exe的位置,执行下面命令

protoc –java_out=../java ./msg.proto

../java 的意思是 把生成的文件放在哪个位置
./msg.proto 的意思是 执行当前目录的msg.proto
这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在PyCharm中使用protobuf主要分为以下三个步骤: 1. 编写.proto文件 首先,需要编写一个.proto文件,用于定义数据结构。可以使用任何文本编辑器编写.proto文件,但是推荐使用PyCharm自带的protobuf语法高亮编辑器。 在PyCharm中,可以创建一个新的.proto文件,然后在文件中编写protobuf的数据结构定义。例如,下面是一个简单的.proto文件: ``` syntax = "proto3"; message Person { string name = 1; int32 age = 2; repeated string emails = 3; } ``` 2. 使用protoc编译器 一旦.proto文件编写完成,就可以使用protoc编译器将其编译成Python代码。在PyCharm中,可以通过命令行来执行protoc编译器,并将生成的Python代码添加到项目中。 可以在PyCharm的Terminal中执行以下命令来安装protoc编译器: ``` sudo apt-get install protobuf-compiler ``` 然后,在Terminal中执行以下命令来生成Python代码: ``` protoc --python_out=. your_proto_file.proto ``` 其中,your_proto_file.proto是你的.proto文件的名称,也可以是包含多个.proto文件的目录。 3. 在Python代码中使用protobuf 最后,就可以在Python代码中使用protobuf了。编写Python代码时,可以导入刚才生成的protobuf模块,并使用其中定义的数据结构。 例如,下面是一个简单的Python代码示例,使用上述.proto文件定义的Person数据结构: ``` import person_pb2 person = person_pb2.Person() person.name = "Alice" person.age = 30 person.emails.append("alice@example.com") person.emails.append("alice.work@example.com") print(person) ``` 希望这些步骤能够帮助您在PyCharm中成功使用protobuf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值