【问题标题】:How to run protoc correctly with different file import?如何使用不同的文件导入正确运行 protoc?
【发布时间】:2020-10-20 03:57:18
【问题描述】:

我要生成的主文件有这些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 studio)

我遇到错误的两种情况是:

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.
    
  1. 指定所有导入文件
  • 命令在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

我做错了什么?

【问题讨论】:

    标签: proto protoc


    【解决方案1】:

    我刚刚发现了问题所在。关于import

    我必须删除前缀protos,因为导入文件在同级目录中。

    所以导入变成了这样:

    import "google_annotations.proto";
    import "nakama_annotations.proto";
    import "nakama_api.proto";
    

    我之前把protos放在前面的原因是因为Android Studio插件在我这样放时不会显示红色突出显示。现在删除它后,它会突出显示红色,但它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-13
      • 2020-03-03
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      相关资源
      最近更新 更多