我有包含以下内容的简单原型文件。
syntax="proto3";
package main;
message Person {
string name = 1;
int32 age = 2;
}
我正在尝试使用 protoc 为其生成 go 代码。我跑:
protoc --go_out=. simple.proto
我收到以下错误:
protoc-gen-go: unable to determine Go import path for "simple.proto"
Please specify either:
• a "go_package" option in the .proto source file, or
• a "M" argument on the command line.
main.go
, go.mod
and simple.proto
位于同一文件夹中。两个都protoc
and protoc-gen-go
是在 PATH 环境中定义的。
Protoc要求指定包,那么解决办法是添加
option go_package = "./your-package-name";
使您的文件如下所示:
syntax="proto3";
package main;
option go_package = "./your-package-name";
message Person {
string name = 1;
int32 age = 2;
}
然后你可以运行命令,例如:
protoc -I src/ --go_out=src/ src/simple/simple.proto
where --go_out=src/
指定文件的生成位置以及原始文件的相对路径。
Note:不要忘记添加前缀option go_package
with ./
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)