go - 导入 proto 文件并编译
问题描述
我在以下目录中有两个原始文件 -
parsers/
> flights/
> flights_proto/
> flights.proto
> flights.pb.go
> flightspostbooking
> flights_postbooking_proto/
> flights_postbooking.proto
> flights_postbooking.pb.go
以下是 proto 文件的内容 -
flights.proto
=============
package "flights_proto";
message Flight {
...
}
flights_postbooking.proto
=========================
package "flights_postbooking_proto"
import "flights_proto/flights.proto"
message Cancel {
Flight flight = 1;
...
}
我无法弄清楚如何编译flights_postbooking.proto
生成pb.go
文件。
我尝试从parsers
目录中执行以下操作。
protoc --proto_path=flightspostbooking/flights_postbooking_proto --proto_path=flights/flights_proto flightspostbooking/flights_postbooking_proto/flights_postbooking.proto --go_out=plugins:flights_postbooking_proto
但我得到一个错误flights_proto/flights.proto: File not found
解决方案
protoc
从目录运行parsers
,并使用原始文件的基本目录,即.
protoc --proto_path=. --go_out=plugins=grpc:flightpostbooking/flights_postbooking_proto flightpostbooking/flights_postbooking_proto/flights_postbooking.proto
由于您将parsers
目录作为基础,因此您的导入应该是:
import "flights/flights_proto/flights.proto"
关键是使用相对于您的proto_path
.
推荐阅读
- javascript - 在视口(航点)中向上或向下滚动时仅显示一次元素
- linux - 在 Docker 容器中运行的 shell 脚本中的“exit”语句会退出脚本以及容器;我可以阻止退出容器吗?
- javascript - 如何为无序列表中的每个列表项添加一个按钮?
- javascript - 多次调用的函数反应原生
- python - 如何访问外部数据帧中的数据以带回主数据帧 Pandas
- asp.net-mvc-4 - 关于为什么模板/小部件不会在开发站点上更新的任何想法?它适用于我的本地机器
- r - 如何在ggplot R的facetwrap中创建带有自定义标签的辅助轴
- java - JFrame 上的 MouseListener 永远不会被调用
- latex - 乳胶对齐语法
- firebase - 即使我取消链接,电话仍然有价值(firebase)