在 Go 中编译 google-fhir 原型文件时出错
Posted
技术标签:
【中文标题】在 Go 中编译 google-fhir 原型文件时出错【英文标题】:Errors compiling google-fhir proto files in Go 【发布时间】:2020-09-14 19:43:19 【问题描述】:我无法为 go 编译 google 的 fhir proto
1。我能够生成带有可以解决的警告的 annotations.pb.go
protoc --proto_path=proto --go_out=. proto/annotations.proto
2020/05/27 12:42:17 WARNING: Missing 'go_package' option in "annotations.proto",
please specify it with the full Go package path as
a future release of protoc-gen-go will require this be specified.
See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.
2。很遗憾,我无法解决有关找不到文件的问题。
包含以下导入的 profile_config.proto 示例
import "proto/annotations.proto";
import "proto/r4/core/codes.proto";
import "proto/r4/core/datatypes.proto";
尝试执行导致“未找到”
protoc --proto_path=proto --go_out=. proto/profile_config.proto
proto/annotations.proto: File not found.
proto/r4/core/codes.proto: File not found.
proto/r4/core/datatypes.proto: File not found.
也许这些 proto 文件只能与 java 一起使用,而任何其他语言都需要对文件进行修改。
【问题讨论】:
proto 的路径取决于你如何运行你的 proto 生成。如果可能需要在它前面加上,.
。 proto 文件不依赖于语言,所以 java 不应该是问题
【参考方案1】:
关于 1.,您需要编辑每个要编译的 .proto 并添加 go_package 选项。例如:
option go_package = "github.com/my-org/my-proj/go/gen/fhir/proto"
关于2.,您设置--proto_path=proto
,这导致protoc
搜索proto/annotations.proto
进入以下路径:
./proto/proto/annotations.proto
如果您不设置此选项或将其设置为--proto_path=.
,您将能够编译。
我还建议看看this pull-request。
【讨论】:
以上是关于在 Go 中编译 google-fhir 原型文件时出错的主要内容,如果未能解决你的问题,请参考以下文章