如何使用不同的文件导入正确 运行 协议?
How to run protoc correctly with different file import?
我要生成的主要文件有这些 import
:
import "protos/google_annotations.proto";
import "protos/nakama_annotations.proto";
import "protos/nakama_api.proto";
文件夹结构:
├── lib
├── protos
├── google_annotations.proto
├── nakama_annotations.proto
├── nakama_api.proto
├── apigrpc.proto <--- this is the file to generate.
高亮语法没问题。(Android工作室)
我出错的2个案例是:
1.
protos
目录中的命令 运行
运行 protoc apigrpc.proto --java_out=. --proto_path=.
得到这个错误
protos/google_annotations.proto: File not found.
protos/nakama_annotations.proto: File not found.
protos/nakama_api.proto: File not found.
- 指定所有导入文件
protos
目录中的命令 运行
运行
protoc apigrpc.proto --java_out=. --proto_path=google_annotations.proto --proto_path=nakama_annotations.proto --proto_path=nakama_api.proto
得到这个错误apigrpc.proto: File does not reside within any path specified using --proto_path
我做错了什么?
我刚刚发现问题所在。关于 import
.
我必须删除前缀 protos
因为导入文件在同一级别的目录中。
所以导入变成这样:
import "google_annotations.proto";
import "nakama_annotations.proto";
import "nakama_api.proto";
之所以把protos
放在前面是因为Android Studio插件在我这样放的时候不显示红色高亮。现在删除后,它突出显示红色,但它有效。
我要生成的主要文件有这些 import
:
import "protos/google_annotations.proto";
import "protos/nakama_annotations.proto";
import "protos/nakama_api.proto";
文件夹结构:
├── lib
├── protos
├── google_annotations.proto
├── nakama_annotations.proto
├── nakama_api.proto
├── apigrpc.proto <--- this is the file to generate.
高亮语法没问题。(Android工作室)
我出错的2个案例是:
1.
protos
目录中的命令 运行运行
protoc apigrpc.proto --java_out=. --proto_path=.
得到这个错误
protos/google_annotations.proto: File not found. protos/nakama_annotations.proto: File not found. protos/nakama_api.proto: File not found.
- 指定所有导入文件
protos
目录中的命令 运行运行
protoc apigrpc.proto --java_out=. --proto_path=google_annotations.proto --proto_path=nakama_annotations.proto --proto_path=nakama_api.proto
得到这个错误
apigrpc.proto: File does not reside within any path specified using --proto_path
我做错了什么?
我刚刚发现问题所在。关于 import
.
我必须删除前缀 protos
因为导入文件在同一级别的目录中。
所以导入变成这样:
import "google_annotations.proto";
import "nakama_annotations.proto";
import "nakama_api.proto";
之所以把protos
放在前面是因为Android Studio插件在我这样放的时候不显示红色高亮。现在删除后,它突出显示红色,但它有效。