代码生成
为了生成 Java, Python, C++, Go, Ruby, Objective-C, or C# 代码,需要处理定义在.proto文件中的消息类型。需要在.proto文件上运行protocol buffer编译器protoc. 如果你没有安装这个编译器, 下载包并遵循README的指示. 对于Go, 需要为编译器安装特别的代码生成插件: 在github上的golang/protobuf仓库中可以找到它和安装指示.
Protocol 编译器调用如下所示:
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 指定一个目录用于查找.proto文件, 当解析导入命令时. 缺省使用当前目录. 多个导入命令可以通过传递多次--proto_path选项来指定.这些路径将按照顺序被搜索. -I=IMPORT_PATH是--proto_path的缩写形式.
- 可以提供一个或者多个输出命令:
- --cpp_out 生成 C++ 代码在 DST_DIR
- --java_out [Java代码生成参考](https://developers.google.com/protocol-buffers/docs/reference/java-generated)
- --python_out
- --go_out Go代码生成参考
- --ruby_out
- --objc_out
- --csharp_out C#代码生成参考
- --php_out