【问题标题】:go-grpc Import "google/protobuf/struct.proto" was not found or had errorsgo-grpc 导入“google/protobuf/struct.proto”未找到或有错误
【发布时间】:2021-05-29 17:42:32
【问题描述】:

我正在使用以下命令为 golang 生成 proto 代码:

protoc --go_out=../generated --go_opt=paths=source_relative \
    --go-grpc_out=../generated --go-grpc_opt=paths=source_relative \
    *.proto

我将内置的 google/protobuf/struct.proto 用于非结构化数据。但是,我收到一条错误消息,提示“google.protobuf.Struct”未定义。

【问题讨论】:

    标签: go grpc grpc-go


    【解决方案1】:

    protoc 包含./bin./include 目录。

    ./include 应包括例如google/protobuf/struct.proto.

    如果您将PATH 正确设置为./protoc../bin,则struct.proto 应包含在编译中。

    示例

    go.mod:

    module github.com/some/test
    
    go 1.16
    
    require google.golang.org/protobuf v1.26.0
    

    test.proto:

    syntax = "proto3";
    
    package test;
    
    import "google/protobuf/struct.proto";
    
    option go_package = "github.com/some/test;test";
    
    message SomeRequest {
      google.protobuf.Struct some_struct = 1;
    }
    

    然后:

    protoc \
    --go_out=. \
    --go_opt=module=github.com/some/test  \
    test.proto
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-28
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2020-05-31
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多