将ASN.1生成的类添加到C项目

将ASN.1生成的类添加到C项目,c,asn.1,C,Asn.1,我使用这个编译器lionet.info/asn1c从ASN.1描述中生成了一些C类。当我试图用GCC编译代码时,我发现了一些错误,这是其中的一个例子 在asn_application.h:45中包含的文件中, 来自client.c:10:constr_TYPE.h:15:28:error:ber_tlv_length.h:没有这样的文件或目录constr_TYPE.h:16:25: 错误:ber_tlv_tag.h:中未包含此类文件或目录 asn_申请。h:45, 来自client.c:10:c

我使用这个编译器lionet.info/asn1c从ASN.1描述中生成了一些C类。当我试图用GCC编译代码时,我发现了一些错误,这是其中的一个例子

在asn_application.h:45中包含的文件中, 来自client.c:10:constr_TYPE.h:15:28:error:ber_tlv_length.h:没有这样的文件或目录constr_TYPE.h:16:25: 错误:ber_tlv_tag.h:中未包含此类文件或目录 asn_申请。h:45, 来自client.c:10:constr_TYPE.h:35:错误:“ber_tlv_len_t”constr_TYPE之前应为说明符限定符列表。h:38:60: 错误:ber_解码器。h:没有此类文件或目录结构类型。h:39:68: 错误:der_encoder.h:没有此类文件或目录构造类型。h:40:58: 错误:xer_解码器。h:没有此类文件或目录结构类型。h:41:60: 错误:xer_编码器。h:没有此类文件或目录构造类型。h:42:61: 错误:per_解码器。h:没有此类文件或目录构造类型。h:43:61: 错误:per_encoder.h:没有此类文件或目录构造类型。h:44:59: 错误:约束。h:没有此类文件或目录构造类型。h:77: 错误:“ber\u tlv\u tag\t”之前应为声明说明符或“…” constr_TYPE.h:77:错误:“ber_tlv_tag_t”声明为函数 返回函数constr_TYPE.h:77:警告:参数名称 函数声明constr_TYPE中的(不带类型)。h:79:错误: 应为“=”、“、”、“;”、”asm“或”属性 “asn类型最外层标记”构造类型。h:95:错误:应为 “asn\u施工检查”之前的说明符限定符列表 constr_TYPE.h:144:错误:字段“tag”声明为函数 constr_TYPE.h:147:错误:之前应为说明符限定符列表 “asn施工检查”施工类型。h:157:错误:声明了字段“el_标记” 作为client.c:11中包含的文件中的函数: asn_编解码器_prim.h:8:29:错误:asn_应用程序。h:没有此类文件或 client.c:11:asn\u codecs\u prim.h:20中包含的文件中的目录: 错误:应为“=”、“、”、“;”、”asm“或”属性 “ber_decode_primitive”asn_编解码器_prim.h:21:错误:应为“=”、“,”, ‘;’, ‘文件中“der_encode_primitive”之前的asm'或'属性 从客户端包括。c:15:ber_解码器。h:56:错误:预期 声明说明符或“ber_tlv_lent”之前的“…”

在eclipe中有一个

调用:GCC编译器GCC-O0-g3-Wall-C-fmessage length=0-MMD -MP-MF“src/BIT_STRING.d”-MT“src/BIT_STRING.d”-o“src/BIT_STRING.o”“../src/BIT_STRING.c”。/src/BIT_STRING.c:5:26:警告: asn_internal.h:没有这样的文件或目录../src/BIT_STRING.c:6:24: 警告:BIT_STRING.h:没有这样的文件或目录 ../src/BIT_STRING.c:12:错误:应为“=”、“、”、“;”、”asm'或 “asn_DEF_BIT_STRING_标记”之前的“属性” ../src/BIT_STRING.c:15:错误:应为“=”、“、”、“;”、”asm'或 “asn_DEF_BIT_STRING_specs”之前的“属性” ../src/BIT_STRING.c:20:错误:应为“=”、“、”、“;”、”asm'或 “asn_DEF_BIT_STRING”之前的“属性”../src/BIT_STRING.c:48: 错误:在“”标记../src/BIT_STRING之前应为“')。c:76:错误: 应为“=”、“、”、“;”、”asm“或”属性 'BIT_STRING_encode_xer'../src/BIT_STRING.c:141:错误:预期'' “”之前的令牌生成::[src/BIT_STRING.o]错误1


在ECLICE中,我只是在src文件夹中添加了生成的类,并添加了标题。

编译器错误看起来很神秘,但它们是为供人阅读而设计的。通常,您看到的第一个错误是问题的最佳指示(假设只有一个)


因此,编译器的搜索路径中没有头
ber\u tlv\u length.h
。看起来这是应该包含在lionet.info代码中的标题之一。因此,找出这些头的位置,或者将它们移动到编译器已经在搜索头的位置,或者告诉编译器查看它们的位置(
-I/path/to/headers/
)。

您需要提供更多信息,例如编译内容的最小示例,或者中间C代码。
in file included from asn_application.h:45, from client.c:10: constr_TYPE.h:15:28: error: ber_tlv_length.h: No such file or directory