【问题标题】:Script to parse a proto file and generate Plain C Structures用于解析 proto 文件并生成纯 C 结构的脚本
【发布时间】:2020-01-25 06:26:43
【问题描述】:

我正在尝试解析目录中可用的原始文件并创建相应的普通旧 C 结构。当前所有的库都在创建 C++ 类,我的仓库不支持这些类(非常过时的仓库:))是否有任何库可以用于此目的。

例如。 address.proto

这个 proto 文件应该被解析并且应该能够创建一个类似下面的结构。样本提取物。

struct PhoneNumber_s {
    char number[15]
    PhoneType type;
} PhoneNumber_t;

enum PhoneType {
   MOBILE = 0;
    HOME = 1;
    WORK = 2;
}

根据类型生成代码可能很简单。但是解析器(python 或任何其他语言)是必需的基本信息。

提前致谢。

【问题讨论】:

  • 您是否查看过 C 的各种 protobuf 库?

标签: python c protocol-buffers proto


【解决方案1】:

简短的回答是,你不能以一种有意义的方式来做。除了手动创建相应的 C 结构之外,最好的选择是编写一个简短的程序,该程序接受 protobuf 编译器的输出并使用反射来派生字段名称和类型,然后从中生成 C 源代码。然后,当然,您必须弄清楚如何从 C 中进行序列化/反序列化,但那是另一回事了。

【讨论】:

    猜你喜欢
    • 2010-10-22
    • 2016-12-08
    • 2015-01-18
    • 2018-08-08
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    相关资源
    最近更新 更多