我正在尝试使用时间戳并将它导入到protobuf消息-
import "google/protobuf/timestamp.proto";
message TriggerDataMsg {
google.protobuf.Timestamp start_time = 1;
google.protobuf.Timestamp end_time = 2;
google.protobuf.Timestamp next_fire_time = 3;
google.protobuf.Timestamp previous_fire_time = 4;
sint32 priority = 13;
}
当试图使用protoc编译器编译以生成Java类时,其失败与以下错误有关-
[echo] compiling proto sources...
[exec] google/protobuf/timestamp.proto:35:8: Option "csharp_namespace" unknown.
[exec] com/vmware/nsx/management/backup/model/trigger_data.proto: Import "google/protobuf/timestamp.proto" was not found or had errors.
[exec] com/vmware/nsx/management/backup/model/trigger_data.proto:24:5: "google.protobuf.Timestamp" is not defined.
[exec] com/vmware/nsx/management/backup/model/trigger_data.proto:25:5: "google.protobuf.Timestamp" is not defined.
[exec] com/vmware/nsx/management/backup/model/trigger_data.proto:26:5: "google.protobuf.Timestamp" is not defined.
[exec] com/vmware/nsx/management/backup/model/trigger_data.proto:27:5: "google.protobuf.Timestamp" is not defined.
我不知道它为什么要检查"csharp_namespace“,即使我正在生成Java类。有什么办法可以避免这个错误吗?
发布于 2020-07-28 21:19:46
如果您希望protoc自动导入某些内容,则它需要位于protoc二进制文件旁边的/include文件夹中。
如果我没记错的话,protoc会查找相对于protoc二进制文件的包含。因此,如果protoc位于/usr/local/bin中,那么它将在/usr/local/include中查找。
这对于我在Windows上解决以下问题非常有效:
Import "google/protobuf/wrappers.proto" was not found or had errors.
https://stackoverflow.com/questions/62874455
复制相似问题