Импорт "google / protobuf / timestamp.proto" не найден или имел ошибки - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь использовать Timestamp и импортировал его в сообщении protobuf -

import "google/protobuf/timestamp.proto";

message TriggerDataMsg {
    google.protobuf.Timestamp start_time = 1;
    google.protobuf.Timestamp end_time = 2;
    google.protobuf.Timestamp next_fire_time = 3;
    google.protobuf.Timestamp previous_fire_time = 4;
    sint32 priority = 13;
}

При попытке компиляции с помощью компилятора proto c для генерации классов Java происходит сбой с ошибкой ниже -

 [echo] compiling proto sources...
 [exec] google/protobuf/timestamp.proto:35:8: Option "csharp_namespace" unknown.
 [exec] com/vmware/nsx/management/backup/model/trigger_data.proto: Import "google/protobuf/timestamp.proto" was not found or had errors.
 [exec] com/vmware/nsx/management/backup/model/trigger_data.proto:24:5: "google.protobuf.Timestamp" is not defined.
 [exec] com/vmware/nsx/management/backup/model/trigger_data.proto:25:5: "google.protobuf.Timestamp" is not defined.
 [exec] com/vmware/nsx/management/backup/model/trigger_data.proto:26:5: "google.protobuf.Timestamp" is not defined.
 [exec] com/vmware/nsx/management/backup/model/trigger_data.proto:27:5: "google.protobuf.Timestamp" is not defined.

Я не уверен, почему он проверяет "csharp_namespace", хотя я генерирую классы Java. Любой способ обхода этой ошибки, который я могу попытаться устранить?

1 Ответ

1 голос
/ 29 июля 2020

Если вы хотите, чтобы proto c что-то автоматически импортировал, он должен находиться в папке / include рядом с двоичным файлом proto c.

Ссылка

IIR C, proto c ищет включения относительно двоичного файла proto c. Итак, если proto c находится в / usr / local / bin, тогда он будет выглядеть в /usr/local/include.

Это отлично сработало для меня на Windows, чтобы решить:

Import "google/protobuf/wrappers.proto" was not found or had errors.
...