建设工程招标投标管理信息网站,签名字体在线生成器,平面设计公司收费标准,iis部署网站提示建设中Protocol Buffers Go 代码生成指南 
本主题准确描述了协议缓冲区编译器为任何给定的协议定义生成的Go代码。 
编译器调用 
协议缓冲区编译器需要一个插件来生成Go 代码。使用Go 1.16或更高版本安装#xff0c;方法是运行#xff1a; 
go install google.golang.org/protobuf/…Protocol Buffers Go 代码生成指南 
本主题准确描述了协议缓冲区编译器为任何给定的协议定义生成的Go代码。 
编译器调用 
协议缓冲区编译器需要一个插件来生成Go 代码。使用Go 1.16或更高版本安装方法是运行 
go install google.golang.org/protobuf/cmd/protoc-gen-golatest这将在 G O B I N 中按照一个 p r o t o c g e n g o 的二进制文件。设置 GOBIN 中按照一个protoc gen go 的二进制文件。设置 GOBIN中按照一个protocgengo的二进制文件。设置GOBIN环境变量以更改安装位置。它必须在$PATH中协议缓冲区编译器才能找到它。 当使用Go_out 标志调用时协议缓冲区编译器会产生Go输出。go_out标志的参数是希望编译器编写go输出的目录。编译器为每个.proto 文件输入创建一个源文件。输出文件的名称是通过将.proto扩展名替换为.pb.go来创建的。 生成的.pb.go 文件在输出目录中的位置取决于编译器标志。有几种输出模式 如果指定了pathsimport标志则输出文件将放置在以Go包的导入路径命名的目录中。例如Go导入路径为example.com/project/protos/fizz的输入文件protos/buzz.proto会在example.com/project-protos/fizz/pzz.pb.Go中生成一个输出文件。如果未指定路径标志这是默认的输出模式。 生成的.pb.go文件在输出目录中的位置取决于编译器标志。有几种输出模式 如果指定了pathsimport标志则输出文件将放置在以Go包的导入路径命名的目录中。例如Go导入路径为example.com/project/protos/fizz的输入文件protos/buzz.proto会在example.com/project-protos/fizz/pzz.pb.Go中生成一个输出文件。如果未指定路径标志这是默认的输出模式。 如果指定了module$PREFIX标志则输出文件将被放置在以Go 包的导入路径命名的目录中但指定的目录前缀将从输出文件名中删除。例如输入文件protos/buzz.proto的Go导入路径为example.com/project/protos/fizz,并将example.com/fizz/pzz.pb.Go处生成输出文件。在模块路径之外生成任何Go包都会导致错位此模式对于将生成的文件直接输出到Go模块非常有用。 如果指定了pathsource_relative标志则输出文件将与输入文件放置在相同的相对目录中。例如一个输入文件protos/buzz.proto会在protos/buzz.pb.go中产生一个输出文件。 特定于protoc gen go的标志是通过在调用protoc时传递go_opt标志来提供的。可以传递多个go_opt标志。例如在运行时 
protoc --proto_pathsrc --go_outout --go_optpathssource_relative foo.proto bar/baz.proto编译器将从src目录中读取输入文件foo.proto和bar/baz.proto并将输出文件foo.pb.go和bar/baza.pb.go写入out目录。如果需要编译器会自动创建嵌套的输出子目录但不会创建输出目录本身。