У меня есть два типа «Компания» и «Пользователь», включая общий тип «Адрес», и я пытаюсь сгенерировать заголовочные файлы cpp. Я пробовал несколько способов, но в конечном итоге структура «Address» была многократно определена в двух разных заголовочных файлах. Может ли avrogen cpp генерировать один заголовок для каждого типа вместо того, чтобы иметь все в одном файле?
Это насколько я мог go:
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) Использовал avrogen cpp для генерации заголовков:
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
и, следовательно, не могут собрать вместе.