Ошибки компиляции прото-файлов google-fhir в Go - PullRequest
1 голос
/ 27 мая 2020

Я не могу скомпилировать протокол Google fhir для go

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.

Возможно, эти прото-файлы могут использоваться только с java, и любой другой язык потребует модификации файлов.

1 Ответ

0 голосов
/ 29 мая 2020

Что касается 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=., вы сможете скомпилировать.

Я также предлагаю взглянуть на этот запрос на включение .

...