【发布时间】:2020-06-06 05:45:01
【问题描述】:
我有两种类型“公司”和“用户”,都包括一个通用类型“地址”,并且正在尝试生成 cpp 头文件。我尝试了多种方法,但最终在两个不同的头文件中多次定义了“地址”结构。 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-tools 生成架构文件: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,因此无法一起编译。
【问题讨论】:
标签: c++ apache-kafka schema avro avro-tools