gRPC奇怪的编译命令protoc

举个栗子:

protoc -I helloworld/ helloworld/helloworld.proto --go_out=plugins=grpc:helloworld

大神说得没错,读文档就算是全英文,读起来也比你读翻译得一般的中文文档好理解很多

protoc:https://developers.google.com/protocol-buffers/docs/gotutorial

grpc:https://grpc.io/

最近在研究Go实现微服务,protoc与gRPC这里不作介绍,只说一点:这个命令怎么用

首先,protoc是一个编译命令,把protoc把*.protoc文件编译成*.pb.go或者*.pb2.py等等。

protoc -I helloworld/ helloworld/helloworld.proto --go_out=plugins=grpc:helloworld

看一下这条命令,/helloworld 是你要提供的相对位置的相对起点,如果是当前所在目录,那就写 . (一个小数点),helloworld/helloworld.proto是你proto文件所在地,后面的 --go_out=plugins=grpc:helloworld是输出目录,如果要输出到helloworld下的hhh目录里,就写为

 protoc -I helloworld/  helloworld/helloworld.proto --go_out=plugins=grpc:helloworld/hhh

如果proto文件在helloworld目录的mizi里,那么怎么写?

 protoc -I helloworld  helloworld/mizi/helloworld.proto --go_out=plugins=grpc:helloworld/hhh

大家执行后回发现,它把mizi目录也带到hhh里,也就是把目录结构保留下来了,如果我想得到下面的结果呢?很简单,调一下相对起点就好!

helloworld linge$  protoc -I helloworld/mizi  helloworld/mizi/helloworld.proto --go_out=plugins=grpc:helloworld/hhh

原文地址:https://www.cnblogs.com/ww01/p/10643455.html

时间: 2024-10-16 05:10:34

gRPC奇怪的编译命令protoc的相关文章

【转】Android源代码编译命令m/mm/mmm/make分析--不错

原文网址:http://blog.csdn.net/luoshengyang/article/details/19023609 在前文中,我们分析了Android编译环境的初始化过程.Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了.当然,这要求每一个模块都有一个Android.mk文件.Android.mk实际上是一个Makefile脚本,用来描述模块编译信息.Android编译系统通过整合Android.mk文件完成编译过程.本文就对Android源

预编译命令简单解释(转载)

我的blog是用开源的BlogEngine来架设的,有的时候为了满足自己的需求及要对源代码做一些修改.在我调试客户端代码的时候,不管是使用Firebug或者是Vs 2008来调试,看到的Javascript代码都是经过动态压缩过了的,这个系统有一个HttpHanddle是专门用来处理js文件请求的,在第一次请求的时候会对js代码进行压缩,去掉了注释换行符等不必要的字符,这样可以提高访问的速度,但是对调试非常的不利,相信我们谁都不愿意对着一堆压缩过了的JS代码做调试.于是我想到了C#的预编译指令,

GCC编译命令常用选项

GCC是GUN Compiler Collection的简称,除编译程序外,还包含其他相关工具.GCC可将高级语言编写的源代码构建成计算机直接执行的二进制代码.GCC是Linux平台下最常用的编译程序,也是Linux平台编译器的事实标准.GCC支持四十余种不同目标体系结构(如X86系列.ARM及PowerPC等),可运行在不同的操作系统上(如Linux.Solaris及Windows等).GCC既支持基于宿主的开发(即在A平台上编译该平台使用的程序),也支持交叉编译(即在A平台上编译供B平台使用

预编译命令 #if DEBUG

在控制台程序根据预编译命令: namespace SXGYCarTransfrom.Handle { class Program { static void Main(string[] args) { #if DEBUG RunAsConsole(); #else RunAsServer(); #endif } /// <summary> /// DEBUG 时跑的为控制台程序 /// </summary> private static void RunAsConsole() {

android下m、mm、mmm编译命令的使用

android下m.mm.mmm编译命令的使用 通过查看android源码目录下的build/envsetup.sh文件,可知: - m:       Makes from the top of the tree. - mm:      Builds all of the modules in the current directory. - mmm:     Builds all of the modules in the supplied directories. 要想使用这些命令,首先需要

MTK Android 标准编译命令

命令格式:./maketek [option] [project] [action] [modules] Option: -t ,-tee :输出log信息到当前终端 -o , -opt=…… : 编译附加条件,一般使用-opt=TARGET_BUILD_VARIANT=user来编译用户板软件 -h ,help : 打印帮助信息并退出 Project : 工程名,例如:basicom72_wet_jb3 Action : n , new : 重新编译整个工程 c , clean:清理编译时co

Android 编译命令 make j8 2&gt;&amp;1 | tee build.log 解释

在编译Android的时候,经常看到这样的命令 make  -j8 2>&1 | tee build.log  其中 make 是编译命令, -j8 这里的 8 指的是线程数量,就是你要用几个线程去编译这个工程,一般会是 CPU核心数的2 倍. 提示:开多了会卡死的!!! 2是标准错误,&1是标准输出,2>&1意思就是将标准错误输出到标准输出中. 如果没有2>&1,只会有标准输出,没有错误: tee的作用同时输出到控制台和文件 make > buil

Android源码编译命令详解(二)

通过上篇文章,我们分析了编译android时source build/envsetup.sh和lunch命令,在执行完上述两个命令后, 我们就可以进行编译android了. 1. make 执行make命令的结果就是去执行当前目录下的Makefile文件,我们来看下它的内容: [html]  1 ### DO NOT EDIT THIS FILE ### 2 include build/core/main.mk 3 ### DO NOT EDIT THIS FILE ###   1 ### DO

编译命令

java编译命令:ant -Doffline='yep' -Dskip-npm-clean=true -Dskip-minify=true -Dskip-javadoc=true full-build-deploy-compile-time-weaving jsp编译命令:ant -Doffline='yep' deploy-jsp