协议 --go_opt=paths=source_relative vs --go-grpc_opt=paths=source_relative
protoc --go_opt=paths=source_relative vs --go-grpc_opt=paths=source_relative
我很难理解 protoc
命令和插件。
有什么区别:
protoc \
# Directory where you want the compiler to write your Go output.
--go_out=.
# vs ?
--go_opt=paths=source_relative
# vs ?
--go-grpc_out=.
# vs ?
--go-grpc_opt=paths=source_relative
如果--go_opt
生成
<name>.pb.go
文件
和--go-grpc_opt
生成
<name>_grpc.pb.go
文件
为什么还要 --go_out
?
你能解释一下 protoc - doc 不要说任何关于 --go-grpc_opt
的事情吗?
并且 protoc -h
甚至不将 go 列为 OUT_DIR?
注意:我使用这个安装doc
why even have --go_out?
所以,这里要理解的是 gRPC 与 Protocol Buffers 不同,gRPC 使用 Protocol Buffers 但还有其他框架也在使用它们。所以我们需要生成两者。
现在,为了生成 Protocol buffer 相关代码,您需要使用您提到的 --go_out
。但对于 gRPC 代码,您需要使用 --go-grpc_out
.
and --go-grpc_opt generate _grpc.pb.go file
没有,--go-grpc_out
有。
Can you shade some light on protoc - the doc do not stay anything about --go-grpc_opt?
然后,在生成代码之前,您可以传递一些选项,这就是 --go_opt
和 --go-grpc_opt
的作用。第一个传递 Protobuf 生成的选项,第二个传递 gRPC 生成的选项。选项非常模糊,并且没有所有选项的官方列表,但是您使用 source_relative
(告诉 protoc 使用相对路径)作为路径,还有 module
选项(这有助于 protoc知道要在适当的文件夹中生成的 go 模块名称)
And and protoc -h do not even list go as an OUT_DIR?
最后,protoc 不正式支持 Go 作为输出,你需要安装一个外部插件,这就是 protoc -h
没有显示 --go_out
的原因。可以找到相关讨论 here.
我很难理解 protoc
命令和插件。
有什么区别:
protoc \
# Directory where you want the compiler to write your Go output.
--go_out=.
# vs ?
--go_opt=paths=source_relative
# vs ?
--go-grpc_out=.
# vs ?
--go-grpc_opt=paths=source_relative
如果--go_opt
生成
<name>.pb.go
文件
和--go-grpc_opt
生成
<name>_grpc.pb.go
文件
为什么还要 --go_out
?
你能解释一下 protoc - doc 不要说任何关于 --go-grpc_opt
的事情吗?
并且 protoc -h
甚至不将 go 列为 OUT_DIR?
注意:我使用这个安装doc
why even have --go_out?
所以,这里要理解的是 gRPC 与 Protocol Buffers 不同,gRPC 使用 Protocol Buffers 但还有其他框架也在使用它们。所以我们需要生成两者。
现在,为了生成 Protocol buffer 相关代码,您需要使用您提到的 --go_out
。但对于 gRPC 代码,您需要使用 --go-grpc_out
.
and --go-grpc_opt generate _grpc.pb.go file
没有,--go-grpc_out
有。
Can you shade some light on protoc - the doc do not stay anything about --go-grpc_opt?
然后,在生成代码之前,您可以传递一些选项,这就是 --go_opt
和 --go-grpc_opt
的作用。第一个传递 Protobuf 生成的选项,第二个传递 gRPC 生成的选项。选项非常模糊,并且没有所有选项的官方列表,但是您使用 source_relative
(告诉 protoc 使用相对路径)作为路径,还有 module
选项(这有助于 protoc知道要在适当的文件夹中生成的 go 模块名称)
And and protoc -h do not even list go as an OUT_DIR?
最后,protoc 不正式支持 Go 作为输出,你需要安装一个外部插件,这就是 protoc -h
没有显示 --go_out
的原因。可以找到相关讨论 here.