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 文件放在相同的位置。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/15257315.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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数据库