Serialization (谷歌协议缓冲区的)原型编译器是用哪种语言编写的?

Serialization (谷歌协议缓冲区的)原型编译器是用哪种语言编写的?,serialization,protocol-buffers,Serialization,Protocol Buffers,我想知道“proto编译器”(用于从Java、Python或c++生成源文件的编译器)是用哪种语言编写的?它可能是多种语言的混合体吗 任何帮助都将不胜感激 提前谢谢 贺拉斯这似乎是写的。还有关于和API的文档,但它们似乎不包含编译器本身(至少我没有看到任何明显是编译器的东西,尽管我也没有花太多时间寻找) 也就是说,我几乎很想投票决定是否结束——出于最实际的目的,用于实现编译器的语言基本上是一个琐碎的问题,与实际使用无关。然而,有一个完全合法的例外:如果你要下载和修改编译器,知道你需要使用的语言可

我想知道“proto编译器”(用于从Java、Python或c++生成源文件的编译器)是用哪种语言编写的?它可能是多种语言的混合体吗

任何帮助都将不胜感激

提前谢谢 贺拉斯

这似乎是写的。还有关于和API的文档,但它们似乎不包含编译器本身(至少我没有看到任何明显是编译器的东西,尽管我也没有花太多时间寻找)


也就是说,我几乎很想投票决定是否结束——出于最实际的目的,用于实现编译器的语言基本上是一个琐碎的问题,与实际使用无关。然而,有一个完全合法的例外:如果你要下载和修改编译器,知道你需要使用的语言可能是非常有用的。

PrtoC编译器是用C或C++编写的(无论如何都是本地程序)。 当我想在java文件中处理proto文件时,我

  • 我使用protoc命令将它们转换为协议缓冲区文件

    protoc protofile.proto--描述符\u set\u out=OutputFile

  • 读取新的协议缓冲区文件(它是FileDescriptorSet)并使用它

  • 一个过于复杂的例子是example,compileProto方法

    其已编译,因为protoc命令和选项可以存储在属性文件中


    注意:getFileDescriptor方法读取新创建的协议缓冲区。但是,如果你正在考虑为proto编译器编写一个maven插件,那么了解它是用什么语言编写的也是很有用的。附带说明:
    protoc
    可以调用自定义语言的exe插件,然后当然可以用任何语言编写,只要它们符合预期的规范(我希望是stdin/stdout)