問題
這個錯誤是因為?.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" | 當前目錄相對路徑 | 最簡單但可能不夠靈活 |