我在哪里需要将path
设置为protoc
以获得导入标准协议缓冲区(protobuf),例如Windows和Dart中的empty.proto
和timestamp.proto
? >
运行protoc
时:
协议--dart_out = grpc:lib / src / protos /生成的-Iprotos protos / organization.proto --plugin = protoc-gen-dart = D:\ Users \ Samuel \ AppData \ Roaming \ Pub \ Cache \ bin \ protoc-gen-dart.bat
出现以下错误:
google / protobuf / empty.proto:找不到文件。 organization.proto: 找不到导入“ google / protobuf / empty.proto”或出现错误。 Organization.proto:14:27:未定义“ google.protobuf.Empty”。
在Settings
插件上的IntelliJ Protobuf Support
中,path
定义了标准原型(* .proto)的位置:
此外,此path
是在Project Structure
\ Global Libraries
上的IntelliJ中定义的:
导入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分析器可以识别IDEA上的import "google/protobuf/empty.proto"
和Empty
类,但找不到protoc
。
环境是:
答案 0 :(得分:0)
假设您有 /some/path/to/google/protobuf/empty.proto
,您需要传递 --proto_path=/some/path/to/
以便 protoc 可以找到它。