登录
首页 >  Golang >  Go问答

从其他项目 protobuf 文件导入消息类型

来源:stackoverflow

时间:2024-04-21 17:09:33 169浏览 收藏

大家好,我们又见面了啊~本文《从其他项目 protobuf 文件导入消息类型》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我正在尝试以某种方式构建我的原型文件,当我构建各种语言时,我包含的原型文件是公开可用的。我尝试过 import public "webrtc/signaling.proto" 并且它删除了“未使用”消息,但是当我使用命令 ./protoc 时,rtcmessage 的消息类型仍然不包含在我的 c# 构建 mafia.cs 中.exe -i=g:/mafiaproject/mafiaprotobuf/protofiles --csharp_out=g:/mafiaproject/mafiaprotobuf/csharp_out g:/mafiaproject/mafiaprotobuf/protofiles/mafia.proto 但似乎在我为 go 构建时包含在内。

syntax = "proto3";
option go_package = "github.com/rgeorgeoff/webrtcproto";
package webrtc;

enum reqtype {
  sdp = 0;
  ice = 1;
}

message rtcmessage {
  reqtype req_type = 1;
  bytes data = 2;
}

在上面的目录 mafia.proto 中:

syntax = "proto3";
option go_package = "github.com/rgeorgeoff/SlimePartyGoServer/protobuf3";
package mafia;
import "webrtc/signaling.proto";

... other definitions...

我只希望消息类型/枚举在我的构建中的构建文件(python/go/etc)中可用。我是否还必须为 c# 单独构建所有文件并单独复制它们?


解决方案


您应该将 proto 文件的所有路径作为输入参数传递给 protoc 命令,例如:

protoc -i="."/mafiaproject/mafiaprotobuf/protofiles --csharp_out="."/mafiaproject/mafiaprotobuf/csharp_out mafiaproject/mafiaprotobuf/protofiles/.proto mafiaproject/mafiaprotobuf/protofiles/webrtc/.proto

考虑像这样的树结构:

MafiaProject
└── MafiaProtobuf
    ├── csharp_out
    │   ├── Mafia.cs
    │   └── Signaling.cs
    └── protofiles
        ├── mafia.proto
        └── webrtc
            └── signaling.proto

今天关于《从其他项目 protobuf 文件导入消息类型》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>