Ich möchte Protobuf aus der Proto-Datei von cmd generieren, ohne „option go_package' zu verwenden.

王林
Freigeben: 2024-02-09 15:54:14
nach vorne
1054 Leute haben es durchsucht

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

PHP-Editor Strawberry, Sie haben erwähnt, dass Sie Protobuf aus der cmd-Protodatei generieren möchten, ohne „option go_package“ zu verwenden. In diesem Fall können Sie versuchen, andere Methoden zum Generieren von Protobuf-Dateien zu verwenden. Es gibt Tools, die Ihnen dabei helfen können, z. B. die Verwendung von Plugins oder benutzerdefinierten Skripts zur automatischen Generierung von Protobuf-Dateien. Auf diese Weise können Sie die erforderlichen Protobuf-Dateien auf andere Weise generieren, ohne auf die Option „go_package“ angewiesen zu sein. Auf diese Weise können Sie flexibler auf Ihre Bedürfnisse eingehen.

Frageninhalt

Ich muss eine Protobuf-Datei aus einer Proto-Datei generieren, die eine andere Proto-Datei importiert. Eine weitere Voraussetzung ist, dass es per cmd generiert werden muss (indem nicht „option go_package“ in der Proto-Datei definiert wird).

Workaround

Angenommen, Sie haben 3 Dateien: foo.proto, poo.proto und zoo.proto. Die Datei foo.proto importiert Nachrichtenstrukturen aus poo.proto und zoo.proto. Sie müssen die Befehle in einer bestimmten Reihenfolge schreiben, indem Sie zuerst foo.proto (von anderen importieren) , dann poo.proto (von anderen importieren) und danach zoo .proto (von anderen importieren) einfügen.

Dies ist der Befehl zum Generieren von Protobuf, ohne die Option go_package

zu definieren
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
Nach dem Login kopieren

Bitte beachten Sie das m vor dem Dateinamen, es ersetzt die Option go_package

im Code

foo.proto

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

service foo {
    rpc foorpc(poomessage) returns (zoomessage) {}
}
Nach dem Login kopieren

poo.proto

syntax = "proto3";

message poomessage {
    string body = 1;
}
Nach dem Login kopieren

zoo.proto

syntax = "proto3";

message ZooMessage {
    string body = 1;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonIch möchte Protobuf aus der Proto-Datei von cmd generieren, ohne „option go_package' zu verwenden.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!