5 回答
TA贡献1895条经验 获得超7个赞
你不见了option go_package.
您将提供option go_package
的名称将是由 protoc 生成的包的名称。通过这样做,您可以导入从而访问消息字段。
TA贡献1820条经验 获得超10个赞
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/指定生成文件的位置,然后指定原始文件的相对路径。
注意:不要忘记在前面加上option go_packagewith./
TA贡献2011条经验 获得超2个赞
我有一个类似的问题。
我认为协议缓冲区应该是语言中立的。如果我们将 go_package 添加到 proto 文件中,那么如果我们尝试将这些 proto 文件编译为不同的语言,我们将不得不对文件进行更改。
如果您只考虑生成 go 文件,我看到的解决方案是有效的。
TA贡献1786条经验 获得超13个赞
首先确保您正确安装了编译器
sudo apt install protobuf-compiler
sudo apt install golang-goprotobuf-dev
使用这个命令
protoc -I=src/ --go_out=src/ src/simple.proto
-I = IPATH -指定搜索导入的
目录--go_out=输出目录
- 5 回答
- 0 关注
- 242 浏览
添加回答
举报