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.
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).
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 definierenprotoc --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
Bitte beachten Sie das m vor dem Dateinamen, es ersetzt die Option go_package
im Codefoo.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; }
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!