我正在proto3上建立一个元模型的原型。要生成作为go proto3扩展语法的特定领域模板,语法表现得很可笑。我的域proto文件依赖于包含扩展名的meta.proto。
我可以编译这些去。当包含meta.proto文件时,生成的go以下面的包含块结束:
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "google/protobuf" <--- this import does not exist !!我的扩展名文件具有以下结构(基于这个):
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"
发布于 2017-01-23 12:10:59
可怜人的解决方案。不理想,将其指向相关的go导入工作:
sed -i '' -e 's/import google_protobuf \"google\/protobuf\"/import google_protobuf \"github.com\/golang\/protobuf\/protoc-gen-go\/descriptor\"/g' pkg/domain/proto/extensions/*.pb.gohttps://stackoverflow.com/questions/41792591
复制相似问题