Saya mahu menjana protobuf daripada fail proto cmd tanpa menggunakan 'option go_package'

王林
Lepaskan: 2024-02-09 15:54:14
ke hadapan
1063 orang telah melayarinya

我想从 cmd 的 proto 文件生成 protobuf,而不使用“option go_package ”

PHP Editor Strawberry, anda menyebut bahawa anda ingin menjana protobuf daripada fail proto cmd tanpa menggunakan "option go_package". Dalam kes ini, anda boleh cuba menggunakan kaedah lain untuk menjana fail protobuf. Terdapat alatan yang boleh membantu anda mencapai matlamat ini, seperti menggunakan pemalam atau skrip tersuai untuk menjana fail protobuf secara automatik. Dengan cara ini anda boleh menjana fail protobuf yang diperlukan dengan cara lain tanpa bergantung pada pilihan "go_package". Dengan cara ini anda boleh menjadi lebih fleksibel dengan keperluan anda.

Kandungan soalan

Saya perlu menjana fail protobuf daripada fail proto yang mengimport fail proto lain. Keperluan lain ialah ia mesti dijana oleh cmd (dengan tidak mentakrifkan "option go_package" dalam fail proto).

Penyelesaian

Andaikan anda mempunyai 3 fail foo.proto, poo.proto dan zoo.proto. Fail foo.proto mengimport struktur mesej daripada poo.proto dan zoo.proto. Anda perlu menulis arahan dalam susunan tertentu, meletakkan foo.proto (import dari yang lain) dahulu, kemudian poo.proto (import dari yang lain) dan zoo .proto (import dari yang lain) selepas.

Ini adalah arahan untuk menjana protobuf tanpa menentukan pilihan go_package

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
Salin selepas log masuk

Sila ambil perhatian m sebelum nama fail, ia akan menggantikan pilihan go_package

dalam kod

foo.proto

syntax = "proto3";
import "goo.proto";
import "zoo.proto";

service foo {
    rpc foorpc(poomessage) returns (zoomessage) {}
}
Salin selepas log masuk

poo.proto

syntax = "proto3";

message poomessage {
    string body = 1;
}
Salin selepas log masuk

zoo.proto

syntax = "proto3";

message ZooMessage {
    string body = 1;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Saya mahu menjana protobuf daripada fail proto cmd tanpa menggunakan 'option go_package'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan