亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

protoc --go_opt=paths=source_relative

protoc --go_opt=paths=source_relative

Go
qq_花開花謝_0 2022-10-24 16:28:54
我很難弄清楚protoc命令和 go 插件。有什么區別: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 有所了解 -文檔沒有說什么--go-grpc_opt?并且protoc -h甚至不列出作為 OUT_DIR 嗎?注意:我使用此文檔安裝
查看完整描述

1 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

為什么還要--go_out?

所以,這里要理解的是 gRPC 與 Protocol Buffers 不同,gRPC 使用 Protocol Buffers 但還有其他框架也在使用它們。所以我們需要生成兩者。

現在,為了生成協議緩沖區相關的代碼,你需要使用--go_out你提到的。但對于 gRPC 代碼,您需要使用--go-grpc_out.

和 --go-grpc_opt 生成 _grpc.pb.go 文件

不,--go-grpc_out有。

您能否對 protoc 有所了解 - 文檔對 --go-grpc_opt 沒有保留任何內容?

然后,在生成代碼之前,您可以傳遞一些選項,這就是--go_opt目的--go-grpc_opt。第一個傳遞用于 Protobuf 生成的選項,第二個傳遞用于 gRPC 生成的選項。選項非常模糊,并且沒有所有這些的官方列表,但是您使用source_relative(告訴 protoc 使用相對路徑)作為路徑,還有module選項(幫助 protoc 知道要在正確文件夾中生成的 go 模塊名稱)

而且 protoc -h 甚至不作為 OUT_DIR 列出?

最后,protoc 不正式支持 Go 作為輸出,你需要安裝一個外部插件,這就是為什么protoc -h不顯示--go_out. 可以在此處找到相關討論。


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關注
  • 262 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號