美文网首页
编译go版本proto3出现"go_package"错误

编译go版本proto3出现"go_package"错误

作者: 岑吾 | 来源:发表于2021-12-07 02:34 被阅读0次

    在使用protobuf2升到protobuf3时,更新了proto-gen-go,编译proto文件进报了错误

    protoc-gen-go: unable to determine Go import path for "proto/ipc.proto"
    
    Please specify either:
            • a "go_package" option in the .proto source file, or
            • a "M" argument on the command line.
    
    See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.
    
    --go_out: protoc-gen-go: Plugin failed with status code 1.
    

    源文件为:

    syntax = "proto3";
    
    package ipc;
    
    // 长连接Token验证请求
    message GameAuthReq {
        string authToken = 1;   // Token
        string serverId = 2;    // 登录服务器ID
    }
    
    ...
    

    编译命令为:

    protoc --go_out=. proto/ipc.proto
    
    • protoc-gen-go v1.27.1
    • protoc v3.12.3

    原因是protoc-gen-go版本过高,对源proto文件需要添加包名。在proto文件中添加option go_package = "/ipc";就可以解决了。

    syntax = "proto3";
    
    package ipc;
    option go_package = "/ipc";
    
    // 长连接Token验证请求
    message GameAuthReq {
        string authToken = 1;   // Token
        string serverId = 2;    // 登录服务器ID
    }
    
    ...
    

    还有一种解决办法就是把protoc-gen-go版本退回到1.3.2及以下也可以解决。

    相关文章

      网友评论

          本文标题:编译go版本proto3出现"go_package"错误

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