我在同一目录中有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文件。
非常感谢您的帮助!