使用dep时,我在包含google/protobuf/timestamp.proto众所周知的类型时遇到问题。我收到错误:google/protobuf/timestamp.proto: File not found服务.proto:syntax = "proto3";import "google/protobuf/timestamp.proto";package com.rynop.platform;option go_package = "rpc";service PlatformService { rpc Test(EmptyMessage) returns (EmptyMessage);}message EmptyMessage { }message A { string summary = 1; google.protobuf.Timestamp start = 2;}message B { repeated A foos = 1;}安装包含时间戳 .proto def 的包:dep ensure -add github.com/golang/protobuf/ptypes/timestamp 运行protoc并出现错误:build/bin/protoc -Ivendor -I. --twirp_typescript_out=version=v6:./clients/ts-json/ rpc/service.protogoogle/protobuf/timestamp.proto: File not found.包含时间戳的 .proto 定义的目录存在:file vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.protovendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto: ASCII text我在本地安装协议是因为我不想将协议版本锁定/绑定到该项目:# fetch the protoc compilerOS_NAME=$(shell uname -s)ifeq ($(OS_NAME),Darwin) PROTOC_URL=https://github.com/google/protobuf/releases/download/v3.7.1/protoc-3.7.1-osx-x86_64.zipendififeq ($(OS_NAME),Linux) PROTOC_URL=https://github.com/google/protobuf/releases/download/v3.7.1/protoc-3.7.1-linux-x86_64.zipendifbuild/protoc build/bin/protoc: mkdir -p build/protoc/bin build/bin cd build/protoc && curl -L -o protoc.zip $(PROTOC_URL) && \ unzip protoc.zip && mv bin/protoc ../bin/protoc我究竟做错了什么?
1 回答
慕仙森
TA贡献1827条经验 获得超7个赞
protoc
您收到的错误与您的路径有关INCLUDE
。
当您安装protoc
编译器时(例如,安装到/usr/local/bin/protoc
),为了让它拾取 google 的标准原型定义,例如timestamp.proto
- 这些需要添加到您的INCLUDE
路径中的某个位置(在 MacOS/Linux 上可能会使用/usr/local/include
)。注意:协议头文件应该包含在协议编译器中。
因此,您的原型导入文件通常位于此处:
/usr/local/include/google/protobuf/timestamp.proto
protoc
当编译器看到如下导入时将引用此路径:
import "google/protobuf/timestamp.proto";
因此,请检查您的INCLUDE
路径并确保protoc
标头安装正确。
- 1 回答
- 0 关注
- 108 浏览
添加回答
举报
0/150
提交
取消