すのはら荘春原庄的雪

protoc命令工具使用

Toretto·2023-05-09 21:26·2443 次阅读

protoc命令工具使用

protoc参数基本含义

  • --go_out用于指定protoc的工作方式和go代码生成的位置
    • 参数(用,分开):
      1. plugins: 生成go代码所用插件
      2. paths: go代码生成的位置:
        • import:$
          • 按照生成的go代码的包的全路径来创建目录层级
          • 例如:在demo.proto中定义了option go_package="project/demo",那么就会在生成代码指令的路径下创建"${path}/project/demo/demo.pb.go"
        • source_relative:$
          • 按照proto源文件的目录层级去创建go代码的目录层级
          • 例如:demo.proto定在在"/pb/demo"目录下,当前目录在/pb,那么就会在生成代码指令的路径下创建"${path}/demo/demo.pb.go"
  • --go-grpc_out与--go_out类似
  • --proto_path/-I:指定proto文件的目录
  • 如果你想编译所有proto文件(假设生成Go语言),正常的命令应该是这样的:
Copy
protoc --proto_path=. --go_out=. proto/*.proto proto/user/*proto proto/greeter/*proto

但是有的朋友可能会想偷懒,想直接这样:

Copy
protoc --proto_path=. --go_out=. proto/*.proto

答案是不行的,因为protoc-gen-go不支持这种形式,最终只会编译common.proto

posted @   一只gopher  阅读(2443)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示