Где установить путь к протоколу для импорта стандартов протокола буферов

Где мне нужно установить path к protoc чтобы получить импортные стандарты Protocol Buffers (protobuf), вроде empty.proto а также timestamp.proto в винде и дартс?

Когда protoc выполняется:

protoc --dart_out = grpc: lib / src / protos / Генерируемый -Iprotos protos/organization.proto --plugin=protoc-gen-dart=D:\Users\Samuel\AppData\Roaming\Pub\Cache\bin\protoc- ген-dart.bat

Следующая ошибка представлена:

google / protobuf / empty.proto: файл не найден. organization.proto: Импорт "google/protobuf/empty.proto" не найден или возникли ошибки. organization.proto:14:27: "google.protobuf.Empty" не определено.

В IntelliJ Settings на Protobuf Support плагин path это определить, где стандартные protos (*.proto):

Дополнительно это path это определить в IntelliJ на Project Structure \ Global Libraries:

Код organization.proto этот импорт google/protobuf/empty.proto использовать Empty учебный класс:

syntax = "proto3";

package auge.protobuf;

import "google/protobuf/empty.proto";

service OrganizationService {

    rpc GetOrganizations (google.protobuf.Empty) returns (OrganizationsResponse) {}
}

IntelliJ анализатор распознает import "google/protobuf/empty.proto" а также Empty класс по идее, но protoc не могу найти.

Среда это:

  • ТАК: Windows 7 x64
  • protoc: libprotoc 3.6.1
  • Дротик: 2.2.0-край

2 ответа

Скажите, что у вас есть /some/path/to/google/protobuf/empty.proto, тебе нужно пройти --proto_path=/some/path/to/ так что протокол может найти его.

используйте две точки перед путем к папке protobuf

      <Protobuf Include="..\Proto\protobuf.proto" ProtoRoot="Proto" />
Другие вопросы по тегам