avrogencpp能为模式中的每种类型生成单独的头文件吗?

gr8qqesn  于 2021-06-05  发布在  Kafka
关注(0)|答案(0)|浏览(205)

我有两种类型“company”和“user”,它们都包含一个公共类型“address”,并且正在尝试生成cpp头文件。我尝试了多种方法,但最终在两个不同的头文件中多次定义了“address”结构。avrogencpp是否可以为每种类型生成一个头文件,而不是将所有内容都放在一个文件中?
我只能做到这一点:
1) 已创建sample.avdl

@namespace("test")
protocol Simple {
  record Address {
    string street;
    string state;
    string zip;
  }
  record Company {
    string name;
    Address address;
  }
  record Employee {
    string firstName;
    string lastName;
    Address address;
  }
}

2) 使用avro工具生成架构文件: avro-tools idl2schemata sample.avdl 3) 使用avrogencpp生成标头:

avrogencpp -i Address.avsc -o address.h
avrogencpp -i Employee.avsc -o employee.h
avrogencpp -i Company.avsc -o company.h

现在,问题是employee.h和company.h struct Address 因此无法一起编译。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题