【发布时间】:2015-10-23 06:30:51
【问题描述】:
我正在开发一个使用 Java、C# 和 C++ 应用程序的项目。为了在它们之间进行通信,我尝试使用 Google 协议缓冲区。我正在使用以下 .proto 文件,该文件取自示例:
package tutorial;
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
message AddressBook {
repeated Person person = 1;
}
我指的是以下教程: https://developers.google.com/protocol-buffers/docs/csharptutorial
其他语言的教程也在那里。
我为每种语言尝试了以下命令行参数:
Java:
C:\ProtoBuf\protoc -I=C:\trash --java_out=C:\trash C:\trash/addressbook.proto
C++:
C:\ProtoBuf\protoc -I=C:\trash --cpp_out=C:\trash C:\trash/addressbook.proto
C#:
C:\ProtoBuf\protoc -I=C:\trash --csharp_out=C:\trash C:\trash/addressbook.proto
Java 和 C++ 编译可以正常工作,即使在 Java 的情况下会出现一些警告。但我得到以下输出 C# :
--csharp_out: protoc-gen-csharp: 系统找不到指定的文件。
我正在使用这个编译器:https://github.com/google/protobuf/releases/download/v2.6.1/protoc-2.6.1-win32.zip
我在这里做错了什么?我需要任何其他文件来进行 C# 编译吗?
【问题讨论】:
标签: java c# c++ protocol-buffers