Language Guide (proto3) | proto3 语言指南(十五)生成类

Generating Your Classes - 生成类

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

protoc --proto_path=IMPORT_PATH --cpp_out=DST_DIR --java_out=DST_DIR --python_out=DST_DIR --go_out=DST_DIR --ruby_out=DST_DIR --objc_out=DST_DIR --csharp_out=DST_DIR path/to/file.proto
  • IMPORT_PATH:指定解析import指令时要在其中查找.proto文件的目录。如果省略,则使用当前目录。通过多次传递-proto_path选项可以指定多个导入目录;它们将按顺序进行搜索。-I=_IMPORT_PATH_可以用作--proto_PATH的缩写形式。

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

    • ——cpp_outDST_DIR中生成C++代码。更多信息请参见C++生成代码参考
    • ——java_outDST_DIR中生成Java代码。有关更多信息,请参阅Java生成代码参考
    • ——python_outDST_DIR中生成Python代码。更多信息请参见Python生成代码参考
    • ——go_outDST_DIR中生成Go代码。更多信息请参见Go生成代码参考
    • ——ruby_outDST_DIR中生成Ruby代码。更多信息请参见Ruby生成代码参考
    • ——objc_outDST_DIR中生成Objective-C代码。更多信息请参见Objective-C生成代码参考
    • ——csharp_outDST_DIR中生成c#代码。更多信息请参见C#生成代码参考
    • ——php_outDST_DIR中生成PHP代码。有关更多信息,请参阅PHP生成代码参考。为了方便起见,如果DST_DIR.zip.jar结尾,编译器会将输出写入一个给定名称的zip格式存档文件。注意,如果输出存档已经存在,它将被覆盖;编译器不够智能,无法向现有存档添加文件。
  • 必须提供一个或多个.proto文件作为输入。可以一次指定多个.proto文件。尽管这些文件是相对于当前目录命名的,但每个文件都必须驻留在IMPORT_PATH导入的其中一个路径中,以便编译器可以确定其规范名称。

结语:至此,【Language Guide (proto3) | proto3 语言指南系列随笔全部完成。如果您对系列文章有任何疑问或者意见,欢迎留言讨论!非常希望本系列随笔能为您提供一些帮助。

原文:https://www.cnblogs.com/itheo/p/14273579.html

作者:Theo·Chan
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
posted @ 2021-01-13 18:20  Theo·Chan  阅读(356)  评论(0编辑  收藏  举报