protobuf遇到protoc-gen-go: unable to determine Go import path for “xxx“

问题

这个错误是因为 .proto 文件中缺少必需的 go_package 选项。在 protobuf 生成 Go 代码时,这是关键配置项。

panda@VM:~/dev/pb$ protoc --go_out=. pb.proto
protoc-gen-go: unable to determine Go import path for "pb.proto"

Please specify either:
        • a "go_package" option in the .proto source file, or
        • a "M" argument on the command line.

See https://protobuf.dev/reference/go/go-generated#package for more information.

--go_out: protoc-gen-go: Plugin failed with status code 1.

解决方案

1. 编辑 pb.proto文件

vim pb.proto

 2. 添加 go_package 选项

在文件中添加以下内容(位置通常在 package 声明之后):

syntax = "proto3";

package pb;

// 添加这行(根据您的项目结构调整路径)
option go_package = "dev/pb";

message Request {
  string group = 1;
  string key = 2;
}

// ... 文件其他部分保持不变 ...

3. 保持文件后重新生成代码 

protoc --go_out=. --go_opt=paths=source_relative pb.proto

 go_package 选项说明

值格式 说明 示例值
"dev/pb" 相对导入路径(推荐) 适用于大多数项目
"github.com/.../dev" 完整导入路径(如果项目是模块) "github.com/user/project/dev"
"./pb" 当前目录相对路径 最简单但可能不够灵活

你可能感兴趣的:(golang)