首页 > 其他分享 >protoc命令工具使用

protoc命令工具使用

时间:2023-05-09 21:35:09浏览次数:32  
标签:protoc proto -- demo 命令 go 工具 out

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语言),正常的命令应该是这样的:
protoc --proto_path=.  --go_out=.  proto/*.proto proto/user/*proto proto/greeter/*proto

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

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

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

标签:protoc,proto,--,demo,命令,go,工具,out
From: https://www.cnblogs.com/gopher-small-idea/p/17386358.html

相关文章

  • Docker CLI docker compose rm常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • 终端常用命令(自用)
    记录文件解压缩,解决向日葵无法连Ubuntu,ubuntu+jekyll搭建个人博客等命令。文件解压缩压缩tar-czvffilename.tar.gz/xxx/folder分割split-b4000M-a2-dfilename.tar.gzfilename.tar.gz.–verbose#命令最后的一个点"."不能丢了#-b意思是切分片大小,其单位......
  • git 基本命令记录
    gitinit //初始化本地仓库gitadd*** //添加指定***文件到暂存区gitadd. //添加该目录下所有文件到暂存区gitcommit-m'**注释**' //将文件提交仓库(注释为自己可以添加的信息gitstatus //查看暂存区的状态(例如是......
  • 你还在纠结怎么选IDE吗?常用IDE工具分享
    近期有不少刚学编程的小伙伴来问我,市面上那么多IDE工具,该怎么选?今天在这里跟大家分享几款个人比较钟爱的IDE工具,供大家参考。VisualStudio 优点:支持多种语言,包括C#,C++,VisualBasic等,可用于Web应用程序、桌面应用程序、移动应用程序等开发;集成了多种工具和功能,例如调试器......
  • 俄大神 lopatkin Windows 精简优化系统 - 工具软件
          昨天有个网友邮件我,说是想找个Tiny7Rev2的ISO操作系统文件,但是我找了下,以前的那些文件有些已经删除了,所以就在网上搜到了俄大神lopatkinWindows精简优化系统,特此放到网盘上让大家能够下载。      链接:https://pan.baidu.com/s/1w6rsaLhNGI35tT6WX46ijA......
  • shell脚本发送多种curl命令
    foridin{1..5}dosh-c'curl-l-H"Content-type:application/json"-XPOST"http://127.0.0.1:8909/common/amethod?visitId=1874747&visitNum=1279367&paramCode=123"'&echo"\nstart$id:1"sh-c'......
  • dotnet ef命令行执行迁移步骤
    如果你的sln由两个项目构成,一个是webapi,一个是dataaccess,例如项目结构如下My_Solution|DataAccess_Project|--DbContext.cs|WebApp_Project|--Startup.cs按照一下步骤执行。(关键点:需要指定启动项目)CDMy_Solutiondotnetefmigrations......
  • linux|Windows|Xshell——Windows远程连接Linux服务器进行上传、下载文件,用远程登录工
    Windows远程连接Linux服务器进行操作时总会需要上传、下载文件。要实现这个目的,既可以通过FTP的方式,也可以在本地终端使用scp命令。但如果是使用Xshell等工具操作服务器的话,最简单的方法就是其自带支持的sz、rz命令了。这两个命令可以直接上传、下载文件,并自动弹出文件选择框,操作......
  • 【工具类】可重用的CountDownLatch
    欢迎review代码,指出错误importjava.util.concurrent.CountDownLatch;importjava.util.concurrent.TimeUnit;importjava.util.concurrent.atomic.AtomicLong;importjava.util.concurrent.locks.AbstractQueuedSynchronizer;/***可重用的CountDownLatch*增加reset......
  • 【工具类】线程安全的滑动时间窗口记录工具类
    闲来无事,分享一个工具类,写的不好,轻喷,欢迎指出问题目标是线程安全无锁高性能的记录滑动时间窗口值importlombok.Getter;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurrent.TimeUnit;importjava.util.conc......