将c ++头文件转换为protobuf .proto文件

Com*_*net 9 c++ protocol-buffers

我想知道,有什么工具可以用来将.h文件转换成c ++的.proto文件吗?我想要做的是:我有几个结构到.h文件中,我想序列化它们并通过protbuf发送它们.为此,我需要一个.proto文件来生成.pb.h和.pb.cc文件,然后我将能够序列化结构并发送它们.

有人知道是否有这样的工具?我可以手动完成,但我会花很多时间,因为头文件包含许多结构.

谢谢!

我正在编辑我的问题让你知道我没有找到我要求的内容,但我发现了这个https://code.google.com/p/protobuf-csharp-port/wiki/ProtoGen工具很有帮助.您将.proto文件作为参数提供,并生成c#代码.希望能帮助到你!

小智 1

您可以编写一个使用libclang Python 绑定很好地完成工作的脚本。

首先,使用 CMake 为您的项目生成一个compile_commands.json。解析您感兴趣的代码的完整编译器命令行。

其次,将编译命令行从 Python 脚本传递到 libclang 以解析包含您感兴趣的标头的编译单元。

第三,迭代 AST 并提取您感兴趣的结构。

第四,从隔离的 AST 子树生成 protobuf。

这只是一个草图,但我做了类似的事情来递归查找编译单元中包含的所有标头。