协议 --dart_out=grpc:. -Iprotos helloworld.proto - 目录不存在
protoc --dart_out=grpc:. -Iprotos helloworld.proto - directory does not exist
如何指定目录 - 只有当我将 helloworld.proto
放在名为 protos
的文件夹中时,以下内容才有效
protoc --dart_out=. -Iprotos helloworld.proto
protos: warning: directory does not exist.
helloworld.proto: File does not reside within any path specified using --proto_path (or -I). You must specify a --proto_path which encompasses this file. Note that the proto_path must be an exact prefix of the .proto file names -- protoc is too dumb to figure out when two paths (e.g. absolute and relative) are equivalent (it's harder than you think).
在这种情况下,您不需要包含 -I
,因为 helloworld.proto
在当前工作目录中。
-I
(原始路径)被 protoc
用来引用不在当前工作目录中的目录。例如,如果您要使用 ${PWD}/helloworld.proto
,我认为您需要 -I=${PWD}
。即使 ${PWD}
等同于当前工作目录,protoc
也会看到一个带有目录前缀的原型,并希望将其添加到原型路径中。
通常,当您有非本地的 protobuf 导入时,您需要添加一个 proto 路径。然后,您添加 -I=
并列出可能找到这些导入的目录。
如何指定目录 - 只有当我将 helloworld.proto
放在名为 protos
protoc --dart_out=. -Iprotos helloworld.proto
protos: warning: directory does not exist.
helloworld.proto: File does not reside within any path specified using --proto_path (or -I). You must specify a --proto_path which encompasses this file. Note that the proto_path must be an exact prefix of the .proto file names -- protoc is too dumb to figure out when two paths (e.g. absolute and relative) are equivalent (it's harder than you think).
在这种情况下,您不需要包含 -I
,因为 helloworld.proto
在当前工作目录中。
-I
(原始路径)被 protoc
用来引用不在当前工作目录中的目录。例如,如果您要使用 ${PWD}/helloworld.proto
,我认为您需要 -I=${PWD}
。即使 ${PWD}
等同于当前工作目录,protoc
也会看到一个带有目录前缀的原型,并希望将其添加到原型路径中。
通常,当您有非本地的 protobuf 导入时,您需要添加一个 proto 路径。然后,您添加 -I=
并列出可能找到这些导入的目录。