kratos tool protoc 生成grpc代码失败小记

kratos 疑惑记录

背景

  1. 使用kratos tool protoc *.proto 编译生成 grpc 与 http 代码
  2. 在 proto 代码中引用 import "google/protobuf/timestamp.proto"; 使用*timestamp.Timestamp 类型的对象

现象

*.pb.go 文件中, *timestamp.Timestamp 类型的对象编译失败

api/objectStorageService.pb.go:1834:31: m.LastModified.MarshalToSizedBuffer undefined (type *timestamppb.Timestamp has no field or method MarshalToSizedBuffer)
api/objectStorageService.pb.go:2382:31: m.CreationDate.MarshalToSizedBuffer undefined (type *timestamppb.Timestamp has no field or method MarshalToSizedBuffer)
api/objectStorageService.pb.go:2642:31: m.LastModified.MarshalToSizedBuffer undefined (type *timestamppb.Timestamp has no field or method MarshalToSizedBuffer)
api/objectStorageService.pb.go:2746:21: m.LastModified.Size undefined (type *timestamppb.Timestamp has no field or method Size)
api/objectStorageService.pb.go:2997:21: m.CreationDate.Size undefined (type *timestamppb.Timestamp has no field or method Size)
api/objectStorageService.pb.go:3125:21: m.LastModified.Size undefined (type *timestamppb.Timestamp has no field or method Size)
api/objectStorageService.pb.go:3589:28: m.LastModified.Unmarshal undefined (type *timestamppb.Timestamp has no field or method Unmarshal)
api/objectStorageService.pb.go:5023:28: m.CreationDate.Unmarshal undefined (type *timestamppb.Timestamp has no field or method Unmarshal)
api/objectStorageService.pb.go:5817:28: m.LastModified.Unmarshal undefined (type *timestamppb.Timestamp has no field or method Unmarshal)

原因阐述

kratos 动态生成 grpc 代码时 ,使用的是 protoc --gofast_out=plugins=grpc:. *.proto ,本质上使用的是 protoc-gen-gofast

直接使用 protoc --go_out=plugins=grpc:. *.proto 生成文件没有问题,即使用 protoc-gen-go 没有问题

解决方案

protoc --go_out=plugins=grpc:. *.proto

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值