一、环境相关版本
go v1.20.5
protoc v4.24.0
protoc-gen-go v1.26.0
protoc-gen-go版本过高时需要指定包名,即go_package
二、go_package配置为当前目录下
option go_package="/";
/表示生成的pb.go文件在当前目录下。
此时是在demo下执行,所以pb.go文件生成在demo下。
此时是在demo/api下执行,所以pb.go文件生成在demo/api下。
三、go_package配置为指定目录
option go_package="/main";
指定生成的pb.go文件生成在当前路径下的main文件夹中
此时是在demo下执行,所以pb.go文件生成在demo/main下。
此时是在demo/api下执行,所以pb.go文件生成在demo/api/main下。
但是通过go_out的参数 可以指定pb.go生成的层级,如指定了./api,那么此时虽然是在demo层级下执行,但执行的结果在demo/api层级中。
四、结论
所以如果要生成到指定目录下,实际生成的位置是当前位置/go_out位置/go_package位置,如果每次执行的当前位置不一样,记得调整go_out的位置。
参考链接:
https://blog.miuyun.work/archives/13919709文章来源:https://www.toymoban.com/news/detail-586083.html
如有不对,烦请指出,感谢!文章来源地址https://www.toymoban.com/news/detail-586083.html
到了这里,关于grpc --- protoc生成的pb.go文件的位置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!