开发学院

您的位置:首页>教程>正文

教程正文

Protobuf3 生成属于自己的类

Protobuf3 生成属于自己的类

  若要生成Java、Python、C++、Go、Ruby、Objective-C或C代码,需要使用.proto文件中定义的消息类型,则需要在.proto上运行协议缓冲编译器protoc。如果尚未安装编译器,请下载该软件包并按照自述文件中的说明进行操作。对于Go,您还需要为编译器安装一个特殊的代码生成器插件:您可以在GitHub上的golang/protobuf 存储库中找到这个插件和安装说明。

  协议编译器的调用如下:

  IMPORT_PATH指定在解析导入指令时查找.proto文件的目录。如果省略则默认使用当前目录。多个导入目录可以通过多次传递proto_path选项来指定,它们将按顺序进行搜索。-I=IMPORT_PATH可以用作短形式的--proto_path。

  您可以提供一个或多个输出指令:

  --cpp_out 在DST_DIR生成C++代码. 参见C++生成代码参考。

  --java_out 在DST_DIR生成java代码. 参见java生成代码参考。

  --python_out 在DST_DIR生成python代码. 参见python生成代码参考。

  --go_out 在DST_DIR生成go代码. 参见go生成代码参考。

  --ruby_out 在DST_DIR生成ruby代码. Ruby生成代码参考手册正在编写中。

  --objc_out 在DST_DIR生成Objective-C代码. 参见Objective-C生成代码参考。

  --csharp_out 在DST_DIR生成C#代码. 参见C#生成代码参考。

  --php_out 在DST_DIR生成php代码. 参见php生成代码参考。

  作为额外的便利,如果DST_DIR以.zip或.jar结尾,编译器将把输出写入具有给定名称的单个ZIP格式的归档文件。JAVA JAR规范要求JAR输出也将得到清单文件。注意,如果输出归档文件已经存在,则它将被覆盖;编译器不够智能,无法将文件添加到现有归档文件中。

  你必须提供一个或多个.proto文件作为输入,可以同时指定多个.proto文件。虽然文件是相对于当前目录命名的,但是每个文件必须驻留在其中一个IMPORT_PATH中,以便编译器可以确定其规范名称。