当前位置: 首页 > 知识库问答 >
问题:

从属于不同包的两个proto文件生成Go语言代码

易宣
2023-03-14

我有两个proto-src文件,在同一个文件夹中,比如说:

第一个是foo。协议

syntax = "proto3";
package foo;

第二个是条。proto,需要导入foo。原型

syntax = "proto3";
import "foo.proto";
package bar;

你可以看到它们有不同的包名,当我使用protoc逐个生成它们时,(foo.proto作为第一个原因),我生成了两个golang文件,但我必须将它们放在2个目录中(不能将不同的包名文件放在同一个目录中,golang)

foo/foo.pb.go
bar/bar.pb.go

但在栏中。pb。转到导入使用本地导入路径,如下所示

import foo "."

我在tweeking协议提供的几个选项,但没有使这个工作,任何建议?


共有1个答案

赏星河
2023-03-14

我相信添加选项go\u包应该是正确的解决方案

 类似资料:
  • 我一直在使用protoc生成golang gRPC客户端和服务器代码,没有任何问题。因为我有多个使用相同数据类型的gRPC服务,所以我想引用一个base。为这些类型创建proto,而不是复制和粘贴,这是额外的工作,可能会导致不同步问题。 以下是base.proto示例: 这是一个特定于. proto的示例: 下面是我的命令: 无论我尝试什么,它都会抛出这样的信息: 生成2019/08/01 15:

  • 我使用maven插件“org.xolstice.maven.plugins”创建了原型生成的java文件jar文件。它包含所需的所有java文件,并导入到具有maven依赖关系的项目中。无编译问题。执行时,我得到未实现的异常。 但是我不希望这是作为java源代码内的项目.因为生成的源代码有非常巨大的java文件编译它需要很长的时间每次我构建,所以我需要它作为一个jar文件。

  • 我有2个proto在不同的go包下编译,但是当我在服务器中注册它们并运行它时,我得到: 这里是常见的。测试平台存储库中的proto(在api文件夹中): 如您所见,go\u包和包的包定义与github中的包没有冲突。com/soft/proto-asterix/asterix。只有。proto文件名类似(common.proto)。 我使用protoc生成go文件,protoc gen go插件使

  • 实际开发中,对于超出 int64 或者 uint64 类型的大数进行计算时,如果对精度没有要求,使用 float32 或者 float64 就可以胜任,但如果对精度有严格要求的时候,我们就不能使用浮点数了,因为浮点数在内存中只能被近似的表示。 Go语言中 math/big 包实现了大数字的多精度计算,支持 Int(有符号整数)、Rat(有理数)和 Float(浮点数)等数字类型。 这些类型可以实现

  • 我下载了android应用程序的处理文件(这里是链接http://www.gwoptics.org/processing/mobile/BouncingBall/)我尝试在处理时进行编译,但出现以下两个错误: 找不到android.content.res的库 库必须安装在“sketchbook”文件夹中名为“Libraries”的文件夹中。 我想从这个项目生成整个java,这样我就可以使用它的一些

  • 我在编译.proto文件时遇到问题。希望从.proto文件生成RESTendpoint。下面是代码和错误:syntax=“proto3”; 错误:github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis:警告:目录不存在. google/api/annotations.proto:文件未找到.urlshortener.proto:导