内部city.proto文件我想使用(导入)protobuf 的.proto文件。在我的 golang 应用程序中,我使用 go 模块。city.proto:syntax = "proto3";package proto;import "google/protobuf/timestamp.proto";option go_package = "./proto";message City { google.protobuf.Timestamp create_at = 1;}当我尝试从city.proto文件生成代码时,它会引发这样的错误:google/protobuf/timestamp.proto: File not found.city.proto:3:1: Import "google/protobuf/timestamp.proto" was not found or had errors.city.proto:25:5: "google.protobuf.Timestamp" is not defined.我在我的 gRPC 项目目录中创建了一个proto文件夹。该city.proto文件位于此文件夹中。我运行这样的命令:protoc -I proto/ proto/city.proto --go_out=plugins=grpc:proto/city.此命令仅在我不在 proto 文件中使用 import 的情况下有效。去版本:go version go1.12.9 windows/amd64协议--版本:libprotoc 3.11.4回声 %GOPATH%:C:\Users\NNogerbek\go在该目录中,我看到三个具有这种结构的文件夹:bin protoc.exe protoc-gen-go.exepkg mod **packages**src google.com protobuf timestamp.proto我运行这样的命令:go list -f "{{ .Path }} {{ .Dir }}" -m github.com/golang/protobuf命令结果:github.com/golang/protobuf C:\Users\NNogerbek\go\pkg\mod\github.com\golang\protobuf@v1.4.0
1 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
经过多次尝试,我找到了一种方法,可以使用以下命令将 go 代码生成到我的 gRPC 服务器而不会出错:
protoc -I. -I%GOPATH%/src --gogofaster_out=plugins=grpc:. proto/city.proto
正如您在命令中看到的那样,我指定了src
protobuf 文件所在文件夹的路径。
我还使用了gogoprotobuf包gogofaster
的插件。
- 1 回答
- 0 关注
- 276 浏览
添加回答
举报
0/150
提交
取消