protoc工具使用

protoc工具使用

前面我们用 protoc 来编译 .proto 文件为 go 语言,为了支持编译为 go,需要安装  protoc-gen-go 插件,C# 可以安装 protoc-gen-zsharp 插件。

需要注意的是,转换 .proto 为编程语言,不一定要安装 protoc。

例如 C# 只需要把 .proto 文件放到项目中,通过包管理器安装一个库,就会自动转换为相应的代码。

回归正题,聊一下 protoc 编译 .proto 文件的命令。

protoc 常用的参数如下:

1
2
3
4
 --proto_path=.        #指定proto文件的路径,填写 . 表示就在当前目录下
 --go_out=.            #表示编译后的文件存放路径;如果编译的是 csharp,则 --csharp_out
 --go_opt={xxx.proto}={xxx.proto的路径}  
 # 示例:--go_opt=Mprotos/bar.proto=example.com/project/protos/foo

最简单的编译命令:

1
protoc --go_out=.  *.proto

--{xxx}_out 指令是必须的,因为要输出具体的编程语言代码。

这个输出文件的路径是执行命令的路径,如果我们不在 .proto 文件目录下执行命令,则输出的代码便不是相同位置了。为了解决这个问题,我们可以使用:

1
--go_opt=paths=source_relative

这样在别的地方执行命令,生成的代码会跟 .proto 文件放在相同的位置。

posted @   delphi中间件  阅读(1631)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2020-09-12 firedac获取自增长字段值
2018-09-12 msgpack配合FIREDAC传输多表数据
2018-09-12 msgpack传文件
2016-09-12 处理任务队列的工作线程的创建
2016-09-12 IOCP实现的任务队列
2016-09-12 TList实现的任务队列
2014-09-12 FIREDAC直连ORACLE数据库
点击右上角即可分享
微信分享提示