尽管在导入的.proto文件中定义了未定义的函数

时间:2020-07-17 22:07:28

标签: go protocol-buffers grpc grpc-go

我在同一目录中有2个.proto文件,因此second.proto依赖于first.proto

second.proto

import "first.proto"

enum ThingINeed {
    ...something
}

运行这些命令没有问题:

$ protoc --go_out=generatedsources/first -I. first.proto
$ protoc --go_out=generatedsources/second -I. second.proto

所以目录结构看起来像

 src
    |-first.proto
    |-second.proto
    |-generatedsources
         |-first
              |-first.pb.go
         |-second
              |-second.pb.go

我的问题是我跑步时

$ cd generatedsources/second
$ go build second.pb.go 

我收到一个“ ./second.pb.go:未定义:ThingINeed”,因为second.pb.go使用的是first.pb.go中的ThingINeed(也在first.proto中看到)

我注意到second.pb.go中没有import . "generatedsources/first"行。当我手动将其插入时,效果很好。但是我的意思是,我不应该编辑这些.pb.go文件,因此想知道如何解决此问题。我也非常希望不要编辑这些.proto文件。

非常感谢您的帮助!

0 个答案:

没有答案