当前位置: 首页 > 工具软件 > Proto.Menu > 使用案例 >

Protoc笔记

阎功
2023-12-01

目录

编译

创建 .proto 文件

语法

安装


编译

// $SRC_DIR: .proto 所在的源目录
// --cpp_out: 生成 c++ 代码
// $DST_DIR: 生成代码的目标目录
// xxx.proto: 要针对哪个 proto 文件生成接口代码
​
protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/xxx.proto
​
// 例
protoc --proto_path=C:\znote\lua\z --csharp_out=C:\znote\lua\z test.proto
​
protoc -I=C:\znote\lua\z --csharp_out=C:\znote\lua\z test.proto

创建 .proto 文件

syntax = "proto3";
message Example1 {
    optional string stringVal = 1;
    optional bytes bytesVal = 2;
    message EmbeddedMessage {
        int32 int32Val = 1;
        string stringVal = 2;
    }
    optional EmbeddedMessage embeddedExample1 = 3;
    repeated int32 repeatedInt32Val = 4;
    repeated string repeatedStringVal = 5;
}

深入 ProtoBuf - 简介

语法

message xxx {
  // 字段规则:required -> 字段只能也必须出现 1 次
  // 字段规则:optional -> 字段可出现 0 次或1次
  // 字段规则:repeated -> 字段可出现任意多次(包括 0)
  // 类型:int32、int64、sint32、sint64、string、32-bit ....
  // 字段编号:0 ~ 536870911(除去 19000 到 19999 之间的数字)
  字段规则 类型 名称 = 字段编号;
}

导入定义,reserved 保留字段等知识请参阅 [翻译] ProtoBuf 官方文档(二)- 语法指引(proto2)

关于定义时的一些规范请参阅 [翻译] ProtoBuf 官方文档(四)- 规范指引

安装

github.com/google/protobuf/releases下载 ( protoc-<version>-<os><arch>.zip) 对应的 zip 文件

protoc-3.20.1-rc-1-win64.zip

随便解压到哪

C:\znote\lua\protoc-3.20.1-rc-1-win64

然后添加环境变量

PATH = C:\znote\lua\protoc-3.20.1-rc-1-win64\bin

cmd验证

C:\Users\lx>protoc --version
libprotoc 3.20.1-rc1
 类似资料: