php小編草莓,你提到你想從cmd的proto檔案產生protobuf,而不使用"option go_package"。在這種情況下,你可以嘗試使用其他方法來產生protobuf檔案。有一些工具可以幫助你實現這個目標,例如使用外掛程式或自訂腳本來自動產生protobuf檔案。這樣你就可以不依賴"go_package"選項,而是透過其他方式來產生所需的protobuf檔案。透過這種方法,你可以更有彈性地處理你的需求。
我必須從匯入另一個 proto 檔案的 proto 檔案產生 protobuf 檔案。 另一個要求是,它必須由 cmd 產生(透過不在 proto 檔案中定義「option go_package」)。
假設您有 3 個檔案 foo.proto、poo.proto 和 zoo.proto。檔案 foo.proto 從 poo.proto 和 zoo.proto 匯入訊息結構。您需要按照特定的順序編寫命令,首先將foo.proto(從其他導入) 放在前面,然後將poo.proto(向其他導入) 和zoo .proto(導入其他) 之後。
這是在不定義選項go_package的情況下產生protobuf的命令
protoc --proto_path=./ --go_out=./pb --go-grpc_out=./pb --go_opt=mfoo.proto=./ --go-grpc_opt=mfoo.proto=./ --go_opt=mpoo.proto=./ --go-grpc_opt=mpoo.proto=./ --go_opt=mzoo.proto=./ --go-grpc_opt=mzoo.proto=./ foo.proto goo.proto zoo.proto
請注意檔案名稱前的 m,它會取代程式碼中的選項 go_package
foo.proto
#syntax = "proto3"; import "goo.proto"; import "zoo.proto"; service foo { rpc foorpc(poomessage) returns (zoomessage) {} }
poo.proto
#syntax = "proto3"; message poomessage { string body = 1; }
zoo.proto
#syntax = "proto3"; message ZooMessage { string body = 1; }
以上是我想從 cmd 的 proto 檔案產生 protobuf,而不使用“option go_package ”的詳細內容。更多資訊請關注PHP中文網其他相關文章!