是的,avrogencpp可以为模式中的每个类型生成单独的头文件。您可以使用--output选项来指定生成的头文件的文件名。
下面是一个示例代码,演示如何使用avrogencpp生成单独的头文件:
avrogencpp --output=person.h Person.avsc
avrogencpp --output=address.h Address.avsc
在这个示例中,我们假设Person.avsc和Address.avsc是两个不同的Avro模式文件。
以上命令将分别为每个模式文件生成单独的头文件person.h和address.h。您可以在您的代码中包含这些头文件来使用生成的类型。
下面是一个使用生成的类型的示例代码:
#include "person.h"
#include "address.h"
int main() {
// 使用生成的类型
Person person;
person.name = "John Doe";
person.age = 30;
Address address;
address.street = "123 Main St";
address.city = "New York";
// ...
return 0;
}
在这个示例中,我们包含了生成的头文件person.h和address.h,并使用其中定义的类型Person和Address来创建变量。
请注意,您需要先安装并设置好avrogencpp工具,以便在命令行中可以使用它。