如上图所示,我在p文件夹和proto文件夹下分别有一个helloworld.proto文件,但是我将执行的命令分别写到了gen.bat中,直接一起执行(cd proto && protoc --go_out=plugins=grpc:. *.proto&&cd ..)
也可以在项目根目录下执行:protoc --go_out=plugins=grpc:. ./proto/*.proto , 一条一条的执行, 其中--go_out:设置所生成的Go代码输出目录。该指令会加载protoc-gen-go插件,以达到生成Go代码的目的。生成的文件以.pb.go为后缀,这里的“:”(冒号)有分隔符的作用,后跟命令所需要的参数集,这意味着把生成的GO代码输出到指向的protoc编译的当前目录
plugins=plugin1+plugin2:指定要加载的子插件列表。我们定义的proto文件是涉及了RPC服务的 ,而默认是不会生成RPC代码的,因此需要在go_out中给出plugins参数,将其传递给protoc-gen-go插件,即告诉编译器,请支持RPC(这里指定了内置的grpc插件)
网友评论