golang_protoc: protoc编译生成pb.go文件

protoc官方go文档:https://developers.google.com/protocol-buffers/docs/gotutorial

当前目录生成/proto/helloworld.proto文件

syntax = "proto3";

package helloworld;

option go_package = "/proto";

service Greeter {
     
  rpc SauHello (HelloRequest) returns (HelloReply) {
     }
}

message HelloRequest {
     
  string name = 1;
}

message HelloReply {
     
  string message = 1;
}

命令

protoc -I=./proto --go_out=. ./proto/*

结果:
在/proto目录里生成了helloworld.pb.go文件
这里option go_package 定义了导入的路径/proto,而–go_out也定义了路径,所有最后令–go_out=.

命令介绍

protoc -I=$SRC_DIR --go_out=$DST_DIR $SRC_DIR/addressbook.proto

参数
-I:源文件的目录(可省略)
--go_out: 设置所生成的Go代码输出目录
最后一个参数表示源文件

p.s.
proto文件中如果没有添加option go_package = “/proto”;这行会报一个错误:

protoc-gen-go: unable to determine Go import path for "proto/helloworld.proto"

Please specify either:
        • a "go_package" option in the .proto source file, or
        • a "M" argument on the command line.

See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.

--go_out: protoc-gen-go: Plugin failed with status code 1.

你可能感兴趣的:(微服务,protoc,golang,proto-gen-go,grpc,rpc)