1
我在proto3之上构建元模型原型。由于go proto3扩展语法具有可笑的表现力,因此要生成特定于域的样板文件。我的域的原始文件取决于包含扩展名的meta.proto
。proto3 - >使用自定义扩展导致在代码中输入包(“google/protobuf”)
我可以编译这些去。当包括meta.proto
文件生成的旅途结束了以下包含块:
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "google/protobuf" <--- this import does not exist !!
我的扩展文件具有以下结构(based off this):
syntax = "proto2";
package "...";
option go_package = "...";
import "google/protobuf/descriptor.proto"; <--- this causes the import
// message MyExtensionClass ...
// message MyExtensionField ...
extend google.protobuf.MessageOptions {
optional MyExtensionClass class = 50000;
}
extend google.protobuf.FieldOptions {
optional MyExtensionField field = 50001;
}
我知道解决的办法可能很简单,包括google/protobuf
是为C++生成的。
在我的工作区包含的包应该是"github.com/golang/protobuf/protoc-gen-go/descriptor"
的'descriptor.proto'进口申报自定义选项时,是必要的 - 它不仅适用于C++代码生成。虽然我对Go没有任何了解。 –