美文网首页
protoc 小坑记录

protoc 小坑记录

作者: 追风骚年 | 来源:发表于2023-03-13 18:27 被阅读0次

proto 描述文件可以通过命令 protoc --proto_path=. --go_out=paths=source_relative:. xx/a/a.proto 生成 go 的代码,生成代码里面有个 RawDescriptor ,它是一个 byte 数组,肉眼是不可读的,需要通过内部相关的方法,加断点形式查看,其实它是对 proto 文件的一个整体描述,有那些方法,有那些枚举等等,我这里最关心的是一个叫 path 的参数。

proto 和 proto 之间依赖的时候是通过 package 名字,必须全局有一个地方统一存储 package 和文件具体路径的地方,但是正由于这个路径是写在 RawDescriptor 中的,并不是通过运行时获取(好像也不太好弄),如果 RawDescriptor 中的 path 错误,将导致 proto 的依赖出现错误。

这边逐步排查,发现和 protoc 执行的环境有关系,在不同的路径下执行 protoc,得到的 path 是不同的,所以为了得到一个合适的 path,可以通过调整当前的路径,最终我在 xx 的目录下,执行 protoc --proto_path=. --go_out=paths=source_relative:. a/a.proto 得到了我预期的结果。

相关文章

  • windows 下载 grpc

    最近在windows 下安装grpc,趁着现在放假整体记录一下下载过程。 一.安装protoc程序 protoc下...

  • protoc 安装遇到的坑

    因为项目原因,无法使用最新版本的protoc。项目中使用的protoc版本为2.6.1 官网下载的 2.6.1版本...

  • 小坑记录

    这里简单记录一下小坑,都是在开发过程中遇到的小问题,有的以后可能会写一些长篇来具体讨论一下,有的只是为了提醒自己不...

  • 【flutter填坑】Using insecure protoc

    在升级Android12过程中,当升级了classpath 'com.android.tools.build:gr...

  • golang 注释命令

    protoc //go:generate protoc -I ../routeguide --go_out=plu...

  • EventKit小坑记录

    使用EventKit在将事件计入日历时,若不在主线程中执行的话,添加非重复事件能够正常添加,然而如果加上EKRec...

  • Mac 使用protoc 生成objc file时报异常的问题记

    MacOS 使用terminal 命令protoc 生成objc file时报如下异常: 命令:$ protoc ...

  • cocos2d-x lua 3.10 protobuf 生成lu

    准备工具protobuf源码protobuf-2.5.0.tar.gz protoc工具protoc-2.5.0-...

  • Go使用protobuf

    本文简单记录,在Go下使用protobuf的过程。当然,我们得安装了Go,这里省略。 下载protoc proto...

  • robolectric unit test 小坑

    robolectric unit test 小坑 记录一下自己走过的坑以及总结的经验教训: android stu...

网友评论

      本文标题:protoc 小坑记录

      本文链接:https://www.haomeiwen.com/subject/zjwcrdtx.html