ping命令常用的参数及含义,ping命令的语法参数
协议命令的获得源码在https://github.com/google/protobuf,如果不想自己编译获得最新版本,则可以下载官方编译好的各个平台的,:https://github。com/Google/proto buf/releases,注意不是带语言后缀的文件,那是源码,如下图:
下载后的解压缩包含的内容如下(以老兄下为例)
我们通过哪个命令可以查到协议的安装目录,覆盖它即可。
$哪个协议
/usr/local/bin/protocol
此包包含协议缓冲区的预编译Win32二进制版本
编译器(协议)。该二进制文件面向希望
使用爪哇或计算机编程语言中的协议缓冲区,但不想编译协议
他们自己。要安装,只需将这个二进制文件放在路径中的某个位置。
这个二进制文件是使用MinGW构建的,但是不管
使用的C编译器。
您仍然需要下载源代码包,以便获得
爪哇或计算机编程语言运行时库。从以下位置获取:
https://github.com/google/protobuf/releases/
命令参数
$协议-帮助
用法:协议[选项]协议文件
解析原型文件并根据给定的选项生成输出:
-IPATH,-协议路径=路径指定要搜索的目录
进口。可以多次指定;
目录将按顺序搜索。不然的话
给定,使用当前工作目录。
-版本显示版本信息并退出。
-h,-帮助显示此文本并退出。
- encode=MESSAGE_TYPE读取给定类型的文本格式消息
并把它写成二进制
到标准输出。消息类型必须
在原型文件或其导入中定义。
- decode=MESSAGE_TYPE从中读取给定类型的二进制消息
标准输入并以文本格式书写
到标准输出。消息类型必须
在原型文件或其导入中定义。
- decode_raw从中读取任意协议消息
标准输入并写入原始标签/值
文本格式对标准输出。不
使用这个时应该给出原型文件
旗帜。
-oFILE,写入文件描述符集(一个协议缓冲区,
-descriptor _ set _ out=描述符。样机中定义的文件)包含所有
要归档的输入文件。
-包含_导入在使用-描述符设置输出时,也包括
中输入文件的所有依赖项
集合,这样集合就是自包含的。
-包含来源信息使用-描述符设置输出时,不要剥离
来自FileDescriptorProto的SourceCodeInfo .
这导致更大的描述符
包括关于原件的信息
源文件中每个偏差的位置
以及周围的评论。
- dependency_out=FILE以以下格式编写依赖关系输出文件
由制造预期。这写及物
文件的输入文件路径集
-错误格式=格式设置打印错误的格式。
格式可以是“海合会”(默认)或" msvs "
(微软Visual Studio格式)。
-打印_自由_字段_数字打印消息的空闲字段编号
在给定的原型文件中定义。群组共享
与父字段编号空间相同
消息。延伸范围计为
已占用的字段数。
-插件=可执行文件指定要使用的插件可执行文件。
正常情况下,协议搜索路径
插件,但是您可以指定附加的
不在使用此标志的路径中的可执行文件。
此外,可执行文件可以是以下形式
名称=路径,在这种情况下,给定的插件名称
映射到给定的可执行文件,即使
可执行文件本身的名称不同。
- cpp_out=OUT_DIR生成C头文件和源代码。
- csharp_out=OUT_DIR生成C#源文件。
- java_out=OUT_DIR生成爪哇岛源文件。
- javanano_out=OUT_DIR生成爪哇诺源文件。
- js_out=OUT_DIR生成Java Script语言源代码。
-对象_输出=输出_目录生成目标C头和源。
- python_out=OUT_DIR生成大蟒源文件。
- ruby_out=OUT_DIR生成红宝石源文件。
例子爪哇文件生成$ protocol-Java _ out=./java/./proto/helloworld.proto
协议的命令格式为协议[选项]协议文件(最后是待编译的样机文件)
- java_out为输出爪哇岛代码的目录,这里指定的是. Java/Java/目录。
随后我们指定了样机文件的位置. proto/helloworld.proto。
执行上述命令,我们就. Java/Java/目录下就产生了对应的爪哇岛文件。
去文件生成下面这几种方式生成都可以:
$ protocol-go _ out=./go/./proto/helloworld.proto
跟上面爪哇的生成完全一样,只不过这次是让生成去的代码。
$ protocol-go _ out=./go/-我同意/proto/helloworld.proto
这次多了一个参数-I,-I=导入路径可以用作-原始路径的缩写形式。
-IPATH,-协议路径=路径指定在其中搜索导入的目录。可以多次指定;目录将按顺序搜索。如果没有给定,则使用当前工作目录。
导入路径指定要查找的目录。解析进口指令时的原型文件。如果省略,则使用当前目录。通过多次传递-原始路径选项,可以指定多个导入目录;他们将按顺序被搜查。
简单来说,就是如果多个样机文件之间有互相依赖,生成某个样机文件时,需要进口其他几个样机文件,这时候就要用我来指定搜索目录。
如果没有指定我参数,则在当前目录进行搜索。
上面两种方法产生的目录如下图,我参数起作用了后,生成目录少了一级:
爪哇诺文件生成$ protoco-Java nano _ out=ignore _ services=true:/javanano/-I proto ./proto/大蒜。样机
由于爪哇诺是给机器人用的,没有服务器端代码,所以多了-Java nano _ out=ignore _ services=true:DST _ DIR这个设置,其他完全一样。
参考:https://github . com/grpc/grpc-common/issues/156
更复杂的可以参考:
Android protobuf nano文档
http://堆栈溢出。com/questions/22247951/Android-proto buf-nano-documentation
https://个开发者。谷歌。com/protocol-buffers/docs/proto 3 #生成
为了更方便的使用gRPC,包括协议的命令,针对不同语言有下面额外的方法:
http://www.grpc.io/posts/installation
Language
节点。jslinux、Mac、Windowsnpm安装grpcPythonLinux、Mac、Windowspip安装grpcioRubyLinux、Mac、Windowsgem安装grpcPHPLinux、Mac、Windowspecl安装grpc-betaGoLinux、Mac、Windowsgo获取google.golang.org/grpcObjective-CMacRuntime源代码由CocoapodsC # windows安装gRPC NuGet包从您的IDE (Visual Studio、Monodevelop、Xamarin Studio)自动从开源代码库获取参考资料:
https://github.com/google/protobuf/tree/master/javanano
https://github.com/google/protobuf