Language Guide (proto3) | proto3 語言指南(十五)生成類

Generating Your Classes - 生成類

要生成Java、Python、C++、Go、Ruby、ObjuleC或C代碼,須要使用.proto文件中定義的消息類型,還須要在.proto上運行協議緩衝區編譯器protoc。若是還沒有安裝編譯器,請下載該軟件包並按照自述文件中的說明進行操做。對於Go,您還須要爲編譯器安裝一個特殊的代碼生成器插件:您能夠在GitHub上的golang/protobuf存儲庫中找到這個插件和安裝說明。
協議編譯器的調用方式以下:php

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的縮寫形式。html

  • 能夠提供一個或多個輸出指令:java

    • ——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導入的其中一個路徑中,以便編譯器能夠肯定其規範名稱。python

結語:至此,【Language Guide (proto3) | proto3 語言指南系列隨筆所有完成。若是您對系列文章有任何疑問或者意見,歡迎留言討論!很是但願本系列隨筆能爲您提供一些幫助。git

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

做者: Theo·Chan 版權:本文版權歸做者和博客園共有 轉載:歡迎轉載,但未經做者贊成,必須保留此段聲明;必須在文章中給出原文鏈接;不然必究法律責任
相關文章
相關標籤/搜索